이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "bits/stdc++.h"
#include "gap.h"
using namespace std;
using ll = long long;
long long findGap(int T, int N)
{
ll cep,sag;
MinMax(1,(ll)1e18,&cep,&sag);
if(T == 1){
vector<ll>v;
v.push_back(cep);
v.push_back(sag);
while(cep < sag - 1 and (int)v.size() < N){
ll cp,sg;
MinMax(cep+1,sag-1,&cp,&sg);
if(cp != -1){
v.push_back(cp);
if(cp == sg) break;
v.push_back(sg);
cep = cp;
sag = sg;
}
}
sort(v.begin(),v.end());
ll ans = 0;
for(int i = 1;i < (int)v.size();i++) ans = max(ans,v[i] - v[i - 1]);
return ans;
}
ll now = cep,ans = 1;
while(now < sag){
ll nwa,nwb;
if(now + ans + 1 > sag) break;
MinMax(now + 1,now + ans + 1,&nwa,&nwb);
if(nwa != -1){
ans = max(ans,nwa - now);
now = nwb;
continue;
}
ans++;
while(1){
MinMax(now + 1,now + ans * 2,&nwa,&nwb);
if(nwa != -1){
ans = max(nwa - now,ans);
now = nwb;
break;
}
ans *= 2;
ans++;
}
}
return ans;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |