Submission #1232622

#TimeUsernameProblemLanguageResultExecution timeMemory
1232622rcllHacker (BOI15_hac)C++20
100 / 100
298 ms18028 KiB
#include <bits/stdc++.h> using namespace std; int main() { int n; cin >> n; vector<int> a(2*n+1); a[0]=0; multiset<int> vals; int SZ=(n+1)/2; for (int i=1; i<=n; i++) { cin >> a[i]; a[n+i]=a[i]; } for (int i=1; i<=2*n; i++) { a[i]+=a[i-1]; } int ans=0; vector<int> ret(n+1, INT_MAX); for (int i=1; i<=2*n; i++) { if (i+SZ-1<=2*n) { vals.insert(a[i+SZ-1]-a[i-1]); } if (i > SZ) { vals.erase(vals.find(a[i-1]-a[i-1-SZ])); } int prev=((i-1) % n)+1; ret[prev]=min(ret[prev], *vals.begin()); } for (int i=1; i<=n; i++) { ans=max(ans, ret[i]); } cout << ans << '\n'; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...