Submission #1132001

#TimeUsernameProblemLanguageResultExecution timeMemory
1132001I_FloPPed21Hacker (BOI15_hac)C++20
100 / 100
263 ms27832 KiB
#include <iostream> #include <set> using namespace std; const int N=5e5+1; int n,v[2*N]; long long sp[2*N]; void citeste() { cin>>n; for(int i=1;i<=n;i++) { cin>>v[i]; v[i+n]=v[i]; } for(int i=1;i<=2*n;i++) sp[i]=sp[i-1]+v[i]; } long long ans[N]; void rezolva() { //i+sz-1 int sz=(n+1)/2; multiset<long long>mst; for(int i=1;i<=n;i++) ans[i]=1e18; for(int i=1;i<=2*n;i++) { if(i>sz) { long long val=sp[i-1]-sp[i-sz]; mst.erase(mst.find(sp[i-1]-sp[i-sz-1])); } if(i+sz-1<=2*n) mst.insert(sp[i+sz-1]-sp[i-1]); ans[((i-1)%n)+1]=min(ans[((i-1)%n)+1],*mst.begin()); } long long rasp=0; for(int i=1;i<=n;i++) rasp=max(rasp,ans[i]); cout<<rasp; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); citeste(); rezolva(); 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...