Submission #42687

#TimeUsernameProblemLanguageResultExecution timeMemory
42687MatheusLealVGap (APIO16_gap)C++14
100 / 100
82 ms3488 KiB
#include <bits/stdc++.h> #include "gap.h" #define N 100005 #define inf 1000000000000000000LL using namespace std; typedef long long ll; ll n, v[N], ans[N]; vector<ll> val; ll qtd = 0; void solve(ll ini, ll fimi, ll best) { while(true) { qtd ++; if(ini > fimi || qtd > N) break; ll a, b, fim = ini + best; MinMax(ini, fim, &a, &b); if(a != -1 && b != -1) val.push_back(a), val.push_back(b); ini = ini + best + 1; } } ll findGap(int T, int N_) { ll best = 0, n = N_; if(T == 1) { ll esq = 0, dir = inf; for(int i = 1, st = 1, en = n; i <= (n + 1)/2; i++, st ++, en --) { ll a, b; MinMax(esq, dir, &a, &b); esq = a + 1, dir = b - 1; if(a != -1 && b != -1) ans[st] = a, ans[en] = b; } for(int i = 2; i <= n; i++) best = max(best, ans[i] - ans[i - 1]); return best; } else { ll st, en, dx; MinMax(0, inf, &st, &en); if((en - st)%(n - 1) > 0) dx = 1 + (en - st)/(n - 1); else dx = (en - st)/(n - 1); solve(st, en, dx); sort(val.begin(), val.end()); dx = 0; for(int i = 1; i < val.size(); i++) dx = max(dx, val[i] - val[i - 1]); return dx; } }

Compilation message (stderr)

gap.cpp: In function 'll findGap(int, int)':
gap.cpp:72:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   for(int i = 1; i < val.size(); i++) dx = max(dx, val[i] - val[i - 1]);
                    ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...