제출 #543235

#제출 시각아이디문제언어결과실행 시간메모리
543235DeepessonHacker (BOI15_hac)C++17
0 / 100
82 ms33260 KiB
#include <bits/stdc++.h> #define MAX 2100000 #define LSB(A) (A&(-A)) using ll = long long; ll ft[MAX]; void update(int t,int k){t+=8; while(t<MAX){ ft[t]+=k; t+=LSB(t); } } ll query(int t){t+=8; ll ans=0; while(t>0){ ans+=ft[t]; t-=LSB(t); } return ans; } ll seg(int l,int r){ return query(r)-query(l-1); } ll array[MAX]; int main() { std::ios::sync_with_stdio(false); std::cin.tie(0); std::cout.tie(0); int N; std::cin>>N; long long soma=0; for(int i=0;i!=N;++i){ std::cin>>array[i]; soma+=array[i]; } for(int i=0;i!=MAX;++i){ array[i]=array[i%N]; } for(int i=0;i!=MAX;++i){ update(i,array[i]); } ll puxa=N/2; ll ans=0; for(int i=N;i!=2*N;++i){ ll ans1 = seg(i+1,i+puxa),ans2=seg(i-puxa,i-1); ans=std::max(ans,soma-std::max(ans1,ans2)); } std::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...