Submission #1015218

#TimeUsernameProblemLanguageResultExecution timeMemory
1015218vjudge1Gap (APIO16_gap)C++17
68.05 / 100
45 ms6984 KiB
#include <bits/stdc++.h> // #include "grader.cpp" #include "gap.h" using namespace std; typedef long long ll; ll n; set<ll> st; void recur(ll l, ll r){ if (r < l or st.size() == n) return ; if (r - l <= 1){ MinMax(l, r, &l, &r); if (l != -1){ st.insert(l); st.insert(r); } return ; } ll mid = (l + r) / 2; ll mn, mx; MinMax(l, mid, &mn, &mx); if (mn != -1){ st.insert(mn); st.insert(mx); recur(mn + 1, mx - 1); } MinMax(mid + 1, r, &mn, &mx); if (mn != -1){ st.insert(mn); st.insert(mx); recur(mn + 1, mx - 1); } } ll findGap(int T, int N){ n = N; ll res; if (T == 1 or N <= 8){ ll mn = 0, mx = 1e18; while (N > 0){ N -= 2; MinMax(mn, mx, &mn, &mx); st.insert(mn); st.insert(mx); mn++; mx--; } vector<ll> vec; for (ll x : st) vec.push_back(x); ll res = 0; for (ll i = 1; i < vec.size(); i ++) res = max(res, vec[i] - vec[i - 1]); return res; } else if (N <= 100){ recur(0, 1e18); vector<ll> vec; for (ll x : st) vec.push_back(x); ll res = 0; for (ll i = 1; i < vec.size(); i ++) res = max(res, vec[i] - vec[i - 1]); return res; } else{ ll l = 0, r = 1e18; ll mn, mx; MinMax(l, r, &mn, &mx); ll first = mn, last = mx; ll ans = 1; ll actual = 1; l = mn + 1; while (l <= last){ r = l + ans; MinMax(l, r, &mn, &mx); if (mn == -1) ans *= 2; else{ actual = max(actual, mn - (l - 1)); ans = actual; l = mx + 1; } } return actual; } }

Compilation message (stderr)

gap.cpp: In function 'void recur(ll, ll)':
gap.cpp:11:28: warning: comparison of integer expressions of different signedness: 'std::set<long long int>::size_type' {aka 'long unsigned int'} and 'll' {aka 'long long int'} [-Wsign-compare]
   11 |     if (r < l or st.size() == n) return ;
      |                  ~~~~~~~~~~^~~~
gap.cpp: In function 'll findGap(int, int)':
gap.cpp:62:26: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   62 |         for (ll i = 1; i < vec.size(); i ++)
      |                        ~~^~~~~~~~~~~~
gap.cpp:73:26: warning: comparison of integer expressions of different signedness: 'll' {aka 'long long int'} and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   73 |         for (ll i = 1; i < vec.size(); i ++)
      |                        ~~^~~~~~~~~~~~
gap.cpp:82:12: warning: unused variable 'first' [-Wunused-variable]
   82 |         ll first = mn, last = mx;
      |            ^~~~~
gap.cpp:42:8: warning: unused variable 'res' [-Wunused-variable]
   42 |     ll res;
      |        ^~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...