#include <iostream>
#include <cmath>
#include <iomanip>
using namespace std;
int main() {
int s;
cin >> s;
double ans = -1E9;
double mxeven = -1E9, mxodd = -1E9;
for (double i = 2; i < s; i += 2) {
mxeven = max(mxeven, cos( (i - 2) / 2 ));
ans = max(ans,
2. * sin(i/2) * mxeven + sin(s - i));
}
for (double i = 3; i < s; i += 2) {
mxodd = max(mxodd, cos( (i - 2) / 2 ));
ans = max(ans,
2. * sin(i/2) * mxodd + sin(s - i));
}
cout << fixed << setprecision(9) << ans << endl;
return 0;
}
Insertion Sort Advanced Analysis
#include<iostream>
#include<cstdio>
using namespace std;
long long ans=0;
void mergei(int a[],int i,int j)
{
int ni=((i+j)/2)+1,nj=j+1;
int s=i;
int * arr = new int [j-i+1];
j=ni;
int k=0;
while(i<ni && j<nj)
{
if(a[i]<=a[j])
{
arr[k]=a[i];
i++;
}
else
{
arr[k]=a[j];
ans+=(ni-i);
j++;
}
k++;
}
for(;i<ni;i++,k++)
arr[k]=a[i];
for(;j<nj;j++,k++)
arr[k]=a[j];
for(k=0;s<nj;s++,k++)
a[s]=arr[k];
delete [] arr;
}
void m_sort(int a[],int i,int j)
{
if(i<j)
{
m_sort(a,i,(i+j)/2);
m_sort(a,((i+j)/2)+1,j);
mergei(a,i,j);
}
}
int main()
{
int t;
scanf("%d",&t);
while(t--)
{
int n;
ans=0;
scanf("%d",&n);
int * a = new int[n];
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
m_sort(a,0,n-1);
cout<<ans<<endl;
}
return 0;
}
Fraudulent Activity Notifications
#include <iostream> #include <vector> #include <map> #include <set> #include <algorithm> using namespace std; #define MAXE 210 int A[200010]; int F[MAXE]; int median2(int D) { int p = 0; for (int i = 0; i < MAXE; i++) { p += F[i]; if (p * 2 > D) { return 2 * i; } else if (p * 2 == D) { for (int j = i + 1; ; j++) { if (F[j]) { return i + j; } } } } return -1; } int main() { int N, D; cin >> N >> D; for (int i = 0; i < N; i++) { cin >> A[i]; } int result = 0; for (int i = 0; i < N; i++) { if (i >= D) { if (A[i] >= median2(D)) { ++result; } F[A[i - D]]--; } F[A[i]]++; } cout << result << endl; return 0; }