求调,60pts
查看原帖
求调,60pts
769006
crzcqh楼主2024/3/31 10:17
#include<bits/stdc++.h>
#define F(l,r,i) for(int i=l;i<=r;i++)
#define ll long long
#define M 100005
using namespace std;
ll n,ans,pos,flag;
ll a[M];
int main(){
	cin>>n;
	for(int i=1;i<=n;i++) cin>>a[i],a[i+n]=a[i];
	for(int i=1;i<=n;i++){
		ans=0,flag=1;
		queue<int> q;
		for(int j=i;j<=i+n-1;j++){
			while(a[j]) a[j]-=1,q.push(j)/*,cout<<a[j]<<' '*/;
			//cout<<endl;
			if(!a[j]){
				if(q.empty()){
					flag=0;
					break;
				}
				pos=q.front();
				q.pop();
				ans+=pow(j-pos,2);
			}
		}
		if(flag){
			cout<<ans;
			break;
		}
	}
	return 0;
}

2024/3/31 10:17
加载中...