#include<bits/stdc++.h>
#include "prize.h"
using namespace std;
#define ll int
ll a[200005],dd,d,le,ri,l,r,mid,vt,n;
vector<ll>vc,vc1;
//vector<ll>ask (int i)
//{
// vector<ll>vcx;
// ll ddx=0;
// for(int j=1;j<i;j++)
// if(a[j]<a[i])
// ddx++;
// vcx.push_back(ddx);
// ddx=0;
// for(int j=i+1;j<=n;j++)
// if(a[j]<a[i])
// ddx++;
// vcx.push_back(ddx);
// return vcx;
//
//}
int find_best(int n)
{
dd=sqrt(n);
dd++;
for(int i=1;i<=dd;i++)
{
vc=ask(i);
if(d<vc[0]+vc[1])
{
d=vc[0]+vc[1];
le=vc[0];
ri=vc[1];
}
else if(d>vc[0]+vc[1])
{
le++;
ri--;
}
}
while(1)
{
l=dd+1;
r=n;
vt=n+1;
while(l<=r)
{
mid=(l+r)/2;
vc1=ask(mid);
if(vc1[0]+vc1[1]==0)
return mid;
if(vc1[0]+vc1[1]<d||vc1[0]>le)
{
vt=min(vt,mid);
r=mid-1;
}
else
l=mid+1;
}
if(vt==n+1)
break;
dd=vt;
le++;
}
}
//int main()
//{
// cin>>n;
// for(int i=1;i<=n;i++)
// cin>>a[i];
// cout<<find_best(n);
//}
Compilation message (stderr)
prize.cpp: In function 'int find_best(int)':
prize.cpp:66:1: warning: control reaches end of non-void function [-Wreturn-type]
66 | }
| ^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |