蓝桥杯 1431:[蓝桥杯][2014年第五届真题]分糖果 Easy only once
基本思想:
水题,唯一值得启发的可能也就是传递糖果的过程;
关键点:
i-1递给i,然后从后向前遍历,只需要把最后一个提前保存给第一位小孩即可;
#include<iostream>
#include<stdlib.h>
#include<stdio.h>
#include<vector>
#include<string>
#include<math.h>
#include<algorithm>
#include<cstring>
using namespace std;
using std::vector;
vector<int>children;
vector<int>surge;
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;
}

浙公网安备 33010602011771号