Submission #247703

#TimeUsernameProblemLanguageResultExecution timeMemory
247703MohamedAhmed04Hacker (BOI15_hac)C++14
100 / 100
405 ms18424 KiB
#include <bits/stdc++.h> using namespace std ; const int MAX = 5e5 + 10 ; int arr[MAX] , pref[MAX] ; int n ; int sz ; int sum(int idx) { int a = min(n-1 , idx+sz-1) ; int x = pref[a] ; if(idx > 0) x -= pref[idx-1] ; if(idx + sz-1 >= n) x += pref[idx + sz-1 - n] ; return x ; } int main() { ios_base::sync_with_stdio(0) ; cin.tie(0) ; cin>>n ; for(int i = 0 ; i < n ; ++i) cin>>arr[i] ; pref[0] = arr[0] ; for(int i = 1 ; i < n ; ++i) pref[i] = pref[i-1] + arr[i] ; multiset<int>s ; sz = (n+1) / 2 ; int ans = 0 ; for(int i = 0 ; i < n ; ++i) { if(i+sz-1 >= n) s.insert(sum(i)) ; } for(int i = 0 ; i < n ; ++i) { s.insert(sum(i)) ; ans = max(ans , *s.begin()) ; s.erase(s.find(sum((i-sz+1 + n) % n))) ; } return cout<<ans<<"\n" , 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...