B2020 题解-mnesia
这道题由于题目给定了小朋友的数量为 5,因此直接模拟即可。
我的思路是在分糖果之前先把吃掉的糖果通过对 3 取余算出并加到 sum 变量中,之后直接除 3,所得的数加到相邻的小朋友的糖果数中。
在代码中,我运用了花括号框起,这样可以明显地标识出每个小朋友分糖果的情况。
#include <iostream>
#include <stdio.h>
using namespace std;
int sum, a[6];
int main()
{
cin >> a[1] >> a[2] >> a[3] >> a[4] >> a[5];
{
sum += a[1] % 3;
a[1] /= 3;
a[5] += a[1];
a[2] += a[1];
}
{
sum += a[2] % 3;
a[2] /= 3;
a[3] += a[2];
a[1] += a[2];
}
{
sum += a[3] % 3;
a[3] /= 3;
a[4] += a[3];
a[2] += a[3];
}
{
sum += a[4] % 3;
a[4] /= 3;
a[5] += a[4];
a[3] += a[4];
}
{
sum += a[5] % 3;
a[5] /= 3;
a[1] += a[5];
a[4] += a[5];
}
cout << a[1] << " " << a[2] << " " << a[3] << " " << a[4] << " " << a[5] << endl;
cout << sum;
return 0;
}