求调玄关(tle+wa)
  • 板块灌水区
  • 楼主Winalways
  • 当前回复0
  • 已保存回复0
  • 发布时间2024/10/4 10:17
  • 上次更新2024/10/4 12:15:39
查看原帖
求调玄关(tle+wa)
1011587
Winalways楼主2024/10/4 10:17

提交记录 题目

#include <bits/stdc++.h>
using namespace std;
const int N=1e2+10;
int a[N],cnt[N];
int main(){
	int n;
	cin>>n;
	int sum=0;
	bool f0=false;
	for(int i=0;i<n;i++){
		cin>>a[i];
		if(a[i]!=0){
			f0=true;
		}
		sum+=a[i];
	}
	if(f0==false){
		cout<<0<<endl;
		return 0;
	}
	if(sum%n!=0){
		cout<<-1<<endl;
		return 0;
	}
	int tmp=sum/n;

	int ans=0;
	int l=0,r=n-1;
	while(l<r){
		
		if(a[l]>a[l+1]&&a[l]>tmp){
			
			a[l+1]+=a[l]-tmp;
			a[l]=tmp;
			ans++;
			l++;
		}
		else if(a[l]==a[l+1]){l++;}
		if(a[r]>a[r-1]&&a[r]>tmp){
			a[r-1]+=a[r]-tmp;
			a[r]=tmp;
//			cout<<a[r]<<" "<<a[r-1]<<endl;
			ans++;
			r--;
		}
		else if(a[r]==a[r-1]){r--;}

	}
	cout<<ans<<endl;;
	return 0;
}
2024/10/4 10:17
加载中...