0
点赞
收藏
分享

微信扫一扫

东华大学复试题:分糖果

_阿瑶 2022-04-04 阅读 76

 

#include<iostream>
#include<cstdio>
using namespace std;
int main(){
	int n;
	cin>>n;
	int arr[n],brr[n];
	int f=1,count=0;
	for(int i=0;i<n;i++) cin>>arr[i];
	while(f){
		for (int i = 0; i < n; i++) {
				brr[i] = arr[i] / 2;
				arr[i] -= brr[i];
			}
			// 分糖
			for (int i = 0; i < n - 1; i++) {
				arr[i] += brr[i + 1];
			}
			arr[n - 1] += brr[0];
			// 补糖
			for (int i = 0; i < n; i++) {
				if (arr[i] % 2 != 0) {
					arr[i]++;
					count++;
				}
			}
			// 判断糖果数是否相等
			for (int i = 1; i < n; i++) {
				if (arr[0] != arr[i]) {
					f = 1;
					break;
				}
				if (i == n-1 && arr[0] == arr[i]) {
					f = 0;
				}
			}
	}cout<<count;
	return 0;
}
举报

相关推荐

0 条评论