This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include "gap.h"
#define MAX 1000000000000000000
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
ll findGap(int T, int N)
{
if(T==1) {
ll a=0,b=MAX,c,d;
vector<ll> v;
for(int i=1;i<=(N+1)/2;i++) {
if(a>b) break;
MinMax(a,b,&c,&d);
if(c>=0)v.push_back(c);
if(d>=0)v.push_back(d);
a=c+1; b=d-1;
if(c==d && c>=0) v.pop_back();
}
sort(v.begin(),v.end());
//for(int i=0;i<v.size();i++) cout<<v[i]<<' ';
ll _max = 0ll;
for(int i=0;i<v.size()-1;i++) {
_max = max(_max , v[i+1]-v[i]);
}
return _max;
} else {
ll s,e;
MinMax(0,MAX,&s,&e);
ll minin = (e-s-1ll) / (ll)(N-1) + 1ll;
ll a=s, b=s+minin;
vector<ll> v;
while(1) {
int flag=0;
if(b>=e) {
flag=1;
b=e;
}
ll t1,t2;
MinMax(a,b,&t1,&t2);
if(t1!=-1) {
v.push_back(t1);
v.push_back(t2);
}
if(flag==1) break;
a = b+1;
b = a+minin;
}
//for(int i=0;i<v.size();i++) cout<<v[i]<<' ';
ll _max=0;
for(int i=0;i<v.size()-1;i++) {
_max = max(_max , v[i+1]-v[i]);
}
return _max;
}
return 0;
}
Compilation message (stderr)
gap.cpp: In function 'll findGap(int, int)':
gap.cpp:22:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<v.size()-1;i++) {
^
gap.cpp:50:22: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for(int i=0;i<v.size()-1;i++) {
^
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |