蓝桥杯 1431:[蓝桥杯][2014年第五届真题]分糖果 Easy only once

基本思想:

水题,唯一值得启发的可能也就是传递糖果的过程;

 

关键点:

i-1递给i,然后从后向前遍历,只需要把最后一个提前保存给第一位小孩即可;

 

#include
#include
#include
#include 
#include
#include
#include
#include
using namespace std;
using std::vector;
vectorchildren;
vectorsurge;

bool charge() {
	for (int i = 1; i < children.size(); i++) {
		if (children[i] != children[i - 1]) {
			return false;
		}
	}
	return true;
}

int main() {
	int n;
	cin >> n;
	children.resize(n);
	surge.resize(n);
	for (int i = 0; i < n; i++) {
		scanf("%d", &children[i]);
	}
	int cnt = 0;
	while (!charge()){
		for (int i = 0; i < n; i++) {
			children[i] /= 2;
			surge[i] = children[i];
		}
		for (int i = 0; i < n; i++) {
			children[i] += surge[(i + 1) % n];
			if (children[i] % 2 != 0) {
				cnt++;
				children[i]++;
			}
		}
	}
	cout << cnt;
	//system("pause");
	return 0;
}

  

你可能感兴趣的:(蓝桥杯 1431:[蓝桥杯][2014年第五届真题]分糖果 Easy only once)