Submission #926356

#TimeUsernameProblemLanguageResultExecution timeMemory
926356LudisseyHacker (BOI15_hac)C++14
100 / 100
42 ms6380 KiB
#include <bits/stdc++.h> using namespace std; signed main() { ios_base::sync_with_stdio(false); cin.tie(nullptr); int n; cin >> n; vector<int> v(n*2+(n/2)+1,0); for (int i = 0; i < n*2; i++) { if(i<n) { cin >> v[i]; v[i+n]=v[i]; } v[i]+=v[i-1]; } int half=((n+1)/2); deque<int> queue; for (int i = 0; i < half; i++) { while(!queue.empty()&&v[queue.back()+half-1]-v[queue.back()-1]>(v[i+half-1]-v[i-1])) queue.pop_back(); queue.push_back(i); } int outp=v[queue.front()+half-1]-v[queue.front()-1]; for (int i = half; i < (n*2); i++) { if(!queue.empty()&&queue.front()==i-half) queue.pop_front(); while(!queue.empty()&&v[queue.back()+half-1]-v[queue.back()-1]>(v[i+half-1]-v[i-1])) queue.pop_back(); queue.push_back(i); outp=max(v[queue.front()+half-1]-v[queue.front()-1], outp); } cout << outp << "\n"; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...