Submission #1015186

#TimeUsernameProblemLanguageResultExecution timeMemory
1015186vjudge1Gap (APIO16_gap)C++17
30 / 100
32 ms1908 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; typedef long long ll; ll subtask1(int N); // [0] = ans, [1] = mi, [2] = mx vector<ll> subtask2(ll s = -1, ll e = 1'000'000'000'000'000'001) { if(s > e) return {-1, -1, -1}; ll mid = (s + e) / 2; ll mn1, mn2, mx1, mx2; MinMax(s, mid, &mn1, &mn2); MinMax(mid + 1, e, &mn2, &mx2); ll ans = -1; if(mn1 != -1) { vector<ll> v = subtask2(mn1 + 1, mx1 - 1); if(v[0] == -1) ans = max(ans, mx1 - mn1); else { ans = max(v[0], ans); ans = max(v[1] - mn1, ans); ans = max(mx1 - v[2], ans); } } if(mn2 != -1) { vector<ll> v = subtask2(mn2 + 1, mx2 - 1); if(v[0] == -1) ans = max(ans, mx2 - mn2); else { ans = max(v[0], ans); ans = max(v[1] - mn2, ans); ans = max(mx2 - v[2], ans); } } if(mn1 != -1 && mn2 != -1) ans = max(ans, mn2 - mx1); return {ans, mn1, mx2}; } ll findGap(int T, int N) { if(T == 1) return subtask1(N); return subtask2().at(0); } ll subtask1(int N) { int i = 0, j = N - 1; ll s = 0, e = 1e18; ll *mn = new ll, *mx = new ll; vector<ll> v(N); while(i <= j && s <= e) { MinMax(s, e, mn, mx); v[i] = *mn; v[j] = *mx; i++, j--; s = *mn + 1; e = *mx - 1; } ll ans = 0; for(int i = 1; i < v.size(); i++) ans = max(ans, v[i] - v[i - 1]); return ans; }

Compilation message (stderr)

gap.cpp: In function 'll subtask1(int)':
gap.cpp:78:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   78 |   for(int i = 1; i < v.size(); i++)
      |                  ~~^~~~~~~~~~
gap.cpp: In function 'std::vector<long long int> subtask2(ll, ll)':
gap.cpp:24:47: warning: 'mx1' may be used uninitialized in this function [-Wmaybe-uninitialized]
   24 |       vector<ll> v = subtask2(mn1 + 1, mx1 - 1);
      |                                               ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...