답안 #723662

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
723662 2023-04-14T07:15:38 Z MurotY Hacker (BOI15_hac) C++14
0 / 100
1000 ms 1512 KB
#pragma GCC optimize("Ofast")
#pragma GCC optimize ("unroll-loops")
#pragma GCC target("avx,avx2")
#include <bits/stdc++.h>
#define ios ios::sync_with_stdio(0);cin.tie(0);cout.tie(0);
#define ll long long
#define ull unsigned long long
#define ff first
#define ss second
#define all(a) a.begin(), a.end()
#define sz size()
using namespace std;
const double pi = 2 * acos(0.0);
const ll N=1e6+7, M=998244353;

ll a[N], pr[N];
void solve()
{
	int n;
	cin >> n;
	for (int i=0;i<n;i++) {
	     cin >> a[i];
		pr[i]=pr[max(0, i-1)]+a[i];
	}
	ll ans=0;
	for (int i=0;i<n;i++){
		int res=(n+1)/2;
		ll mn=1e18;
		for (int j=0;j<res;j++){
			
			int l=(i-1+n) % n, r=i;
			ll sum=0;
			int lf;
			if ((l-j+1) >= 0 && j > 0){
				lf=l-j+1;
				if (lf-1 < 0) sum+=pr[l];
				else sum+=pr[l]-pr[lf-1];
			}
			else if (j > 0){
				sum+=pr[l];
				lf=(l-j+1+n) % n;
				if (lf == 0) sum+=pr[n-1];
				else sum+=pr[n-1]-pr[lf-1];
			}
			int j1=res-j; l=i;
		//	if (i == 0) cout << j <<" " << j1 << "\n";
			if ((l+j1-1) < n){
				lf=l+j1-1;
				if (r-1 < 0) sum+=pr[lf];
				else sum+=pr[lf]-pr[r-1];
			}
			else {
				if (r-1 < 0) sum+=pr[n-1];
				else sum+=pr[n-1]-pr[n-1];
				lf=(i+j1-1) % n;
				sum+=pr[lf];
			}	
		//	cout << sum << "\n"; 
			mn=min(mn, sum);
		}
		ans=max(ans, mn);
	}
	cout << ans;
	return ;
}
int main(){
	ios;
	int t=1;	
//	cin >> t;
	while (t--){ 
	    solve();
	    cout << "\n";
	}
	return 0;
}
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Correct 1 ms 212 KB Output is correct
3 Correct 41 ms 404 KB Output is correct
4 Execution timed out 1089 ms 1512 KB Time limit exceeded
5 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 0 ms 212 KB Output is correct
2 Incorrect 0 ms 212 KB Output isn't correct
3 Halted 0 ms 0 KB -