제출 #742915

#제출 시각아이디문제언어결과실행 시간메모리
742915vjudge1Gap (APIO16_gap)C++17
100 / 100
61 ms3264 KiB
#include <bits/stdc++.h> #include "gap.h" using namespace std; typedef long long ll; typedef pair<int, int> pii; typedef pair<ll, ll> pll; #define ent "\n" const int maxn = 1e6 + 100; const ll INF = (1ll<<61); const int MOD = 1e9 + 7; const int inf = (1<<30); const int maxl = 20; const int P = 31; ll findGap(int t, int n){ if(t == 1){ ll l = -1; ll r = (ll)1e18 + 1; ll ans = 0; int cnt = (n+1)/2; while(cnt > 0){ cnt--; ll tl, tr; if(l + 1 > r - 1) break; MinMax(l + 1, r - 1, &tl, &tr); if(tl == -1) break; if(l != -1){ ans = max(ans, tl - l); ans = max(ans, r - tr); } l = tl; r = tr; } if(l < r) ans = max(ans, r - l); return ans; } else{ ll mn, mx, ans = 0; MinMax(0, 1e18, &mn, &mx); ll d = (mx - mn) / (n - 1); ll x = (mx - mn) % (n - 1); ll p = -1; vector<ll> v; v.push_back(mx); v.push_back(mn); for(ll i = mn+1; i <= mx;){ ll r = i + d + (x-- > 0); ll tl, tr; MinMax(i, r - 1, &tl, &tr); if(tr != -1){ v.push_back(tl); v.push_back(tr); } i = r; } sort(v.begin(), v.end()); for(int i = 1; i < v.size(); i++) ans = max(ans, v[i] - v[i-1]); return ans; } }

컴파일 시 표준 에러 (stderr) 메시지

gap.cpp: In function 'll findGap(int, int)':
gap.cpp:58:26: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<long long int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   58 |         for(int i = 1; i < v.size(); i++) ans = max(ans, v[i] - v[i-1]);
      |                        ~~^~~~~~~~~~
gap.cpp:44:12: warning: unused variable 'p' [-Wunused-variable]
   44 |         ll p = -1;
      |            ^
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...