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<iostream>
#include<utility>
#include<string>
#include<vector>
#include<algorithm>
#include<deque>
#include<queue>
#include<set>
#include<map>
#include<functional>
using namespace std;
#define LL long long
#define ALF "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
#define LLBIG 1999999999999999999
#define INTBIG 1111111111
#define MOD 1000000007
#define PI pair<int,int>
#define VI vector<int>
#define VL vector<LL>
#define VVI vector<vector<int>>
#include"gap.h"
//MinMax(int,int,int&,int&)
long long findGap(int T, int N) {
if (T == 1) {
LL A[100002];
LL l = 0, r = 1000000000000000000LL;
for (int i = 0; i<(N + 1) / 2; i++) {
MinMax(l, r, &A[i], &A[N - 1 - i]);
l = A[i] + 1; r = A[N - 1 - i] - 1;
}
LL ans = 0;
for (int i = 0; i<N - 1; i++)
ans = max(ans, A[i + 1] - A[i]);
return ans;
}
else if (T == 2) {
VL A; LL mn, mx;
MinMax(0, 1000000000000000000LL, &mn, &mx);
LL l = mn + 1;
LL r = mn + ((mx - mn + N - 1) / N);
r = min(r,mx-1);
for (LL i = 0; i < N; i++) {
LL a, b;
MinMax(l, r, &a, &b);
if (a != -1) {
A.push_back(a); A.push_back(b);
}
if(r == mx-1) break;
l += ((mx - mn + N - 1) / N);
r += ((mx - mn + N - 1) / N);
r = min(r,mx-1);
}
A.push_back(mn);
A.push_back(mx);
sort(A.begin(), A.end());
LL ans = 0;
for (int i = 1; i < (int)A.size(); i++)
ans = max(ans, A[i] - A[i - 1]);
return ans;
}
else return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |