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"
#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
long long findGap(int T, int n){
ll lo = 0, hi = 1'000'000'000'000'000'000LL;
if (T == 1){
int cnt = 0;
vector<ll> a;
while (hi > lo){
ll mn, mx;
cnt ++;
if (cnt > (n+1)/2)
break;
MinMax(lo, hi, &mn, &mx);
if (mn == -1)
break;
a.push_back(mn);
a.push_back(mx);
lo = mn + 1, hi = mx - 1;
}
sort(a.begin(), a.end());
ll answer = 0;
for (int i = 1; i < a.size(); i++)
answer = max(answer, a[i]-a[i-1]);
return answer;
}
ll mn, mx;
MinMax(lo, hi, &mn, &mx);
ll t = (mx-mn+n-2) / (n-1);
vector<ll> a;
lo = mn, hi = mx;
for (ll i = lo; i <= hi; i += t+1){
MinMax(i, i+t, &mn, &mx);
if (mn == -1)
continue;
a.push_back(mn);
a.push_back(mx);
}
ll answer = 0;
for (int i = 1; i < a.size(); i++)
answer = max(answer, a[i]-a[i-1]);
return answer;
}
Compilation message (stderr)
gap.cpp: In function 'long long int findGap(int, int)':
gap.cpp:27:21: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 1; i < a.size(); i++)
~~^~~~~~~~~~
gap.cpp:44:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
for (int i = 1; i < a.size(); i++)
~~^~~~~~~~~~
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |