Submission #1015205

#TimeUsernameProblemLanguageResultExecution timeMemory
1015205vjudge1Gap (APIO16_gap)C++17
30 / 100
40 ms1968 KiB
#include<bits/stdc++.h> #include "gap.h" using namespace std; typedef long long ll; ll subtask1(int N); ll subtask2(ll s = 0, ll e = 1e18) { if(s >= e) return 0; if(e - s == 1) { ll mn, mx; MinMax(s, e, &mn, &mx); return mx - mn; } ll mid1 = (s + e) / 3, mid2 = 2 * (s + e) / 3; ll mx1, mx2, mx3, mn1, mn2, mn3; MinMax(s, mid1, &mn1, &mx1); MinMax(mid1 + 1, mid2, &mn2, &mx2); MinMax(mid2 + 1, e, &mn3, &mx3); if(mn2 == -1 && mn3 == -1) return subtask2(mn1, mx1); if(mn1 == -1 && mn3 == -1) return subtask2(mn2, mx2); if(mn1 == -1 && mn2 == -1) return subtask2(mn3, mx3); if(mn1 == -1) { ll ans = mn3 - mx2; if(ans < mx3 - mn3) ans = max(ans, subtask2(mn3, mx3)); if(ans < mx2 - mn2) ans = max(ans, subtask2(mn2, mx2)); return ans; } if(mn2 == -1) { ll ans = mn3 - mx1; if(ans < mx3 - mn3) ans = max(ans, subtask2(mn3, mx3)); if(ans < mx1 - mn1) ans = max(ans, subtask2(mn1, mx1)); return ans; } if(mn3 == -1) { ll ans = mn2 - mx1; if(ans < mx1 - mn1) ans = max(ans, subtask2(mn1, mx1)); if(ans < mx2 - mn2) ans = max(ans, subtask2(mn2, mx2)); return ans; } ll ans = max(mn2 - mx1, mn3 - mx2); if(ans < mx1 - mn1) ans = max(ans, subtask2(mn1, mx1)); if(ans < mx2 - mn2) ans = max(ans, subtask2(mn2, mx2)); if(ans < mx3 - mn3) ans = max(ans, subtask2(mn3, mx3)); return ans; } ll findGap(int T, int N) { if(T == 1) return subtask1(N); return subtask2(); } 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:124:20: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
  124 |   for(int i = 1; i < v.size(); i++)
      |                  ~~^~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...