This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#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 time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |