# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
81648 | 2018-10-26T00:46:39 Z | xiaowuc1 | Gap (APIO16_gap) | C++14 | 0 ms | 0 KB |
#include <bits/stdc++.h> using namespace std; typedef long long ll; ll MinMax(ll s, ll t, ll& mn, ll& mx); ll onesolve(int n) { return 0; } ll twosolve(int n) { ll lhs, rhs; MinMax(1, 1000000000000000000LL, lhs, rhs); ll ret = (rhs-lhs+n-2)/(n-1); set<ll> all; all.insert(lhs); all.insert(rhs); ll last = lhs+1; while(last <= rhs) { MinMax(last, last + ret, lhs, rhs); if(lhs >= 0) { all.insert(lhs); all.insert(rhs); } } ll lowest = *all.begin(); for(ll out: all) { ret = max(ret, out - lowest); lowest = out; } return ret; } ll findGap(int t, int n) { if(t==1) return onesolve(n); else return twosolve(n); }