# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
636876 | lovrot | Gap (APIO16_gap) | C++11 | 0 ms | 0 KiB |
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 <bits/stdc++.h>
#include "gap.h"
#define X first
#define Y second
#define ll long long
const int N = 100010;
const ll INF = 1e18;
ll niz[N];
ll findGap(int t, int n){
if(t == 1){
int minp = 0;
int maxp = n - 1;
ll mn = 0, minr;
ll mx = INF, maxr;
while(minp <= maxp){
MinMax(mn, mx, &minr, &maxr);
niz[minp] = minr;
niz[maxp] = maxr;
mn = minr + 1;
mx = maxr - 1;
minp++;
maxp--;
}
ll ans = 0;
for(int i = 0; i < n - 1; i++) ans = max(ans, niz[i + 1] - niz[i]);
return ans;
}
ll mn = 0;
ll mx = INF;
MinMax(mn, mx, &mn, &mx);
niz[n - 1] = mx;
niz[0] = mn;
for(int i = n - 2; i > 0; i--){
mx--;
mn = mx;
MinMax(mn, mx, &mn, &mx);
niz[i] = mx;
}
ll ans = 0;
for(int i = 0; i < n - 1; i++) ans = max(ans, niz[i + 1] - niz[i]);
return ans;
}