제출 #543744

#제출 시각아이디문제언어결과실행 시간메모리
543744Vladth11Gap (APIO16_gap)C++14
100 / 100
70 ms1864 KiB
#include <bits/stdc++.h> #include "gap.h" #define debug(x) cerr << #x << " " << x << "\n" #define debugs(x) cerr << #x << " " << x << " " using namespace std; typedef long long ll; typedef pair <int, int> pii; typedef pair <long double, pii> muchie; const ll NMAX = 100001; const ll VMAX = 1000001; const ll INF = (1LL << 60); const ll MOD = 90000000000000001; const ll BLOCK = 1000000; const ll base = 1000000001; const ll nr_of_bits = 16; ll a[100002]; long long findGap(int T, int N) { a[0] = -1; a[N + 1] = 1e18; a[N + 1] += 1; if(T == 1){ int st = 1, dr = N; while(st <= dr){ MinMax(a[st - 1] + 1, a[dr + 1] - 1, &a[st], &a[dr]); st++; dr--; } ll maxim = 0; for(int i = 2; i <= N; i++){ maxim = max(maxim, a[i] - a[i - 1]); } return maxim; } ll first, last; MinMax(0, 1e18, &first, &last); ll BLOCK = last - first + N/2; BLOCK /= (N - 1); ll ultim = first, maxim = 0; for(ll i = first + 1; i + BLOCK - 1 < last; i += BLOCK){ ll prim, doi; MinMax(i, i + BLOCK - 1, &prim, &doi); if(ultim != -1 && prim != -1) maxim = max(maxim, prim - ultim); if(doi != -1) ultim = doi; } maxim = max(maxim, last - ultim); return maxim; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...