题解 | #Candy Sharing Game#
Candy Sharing Game
https://www.nowcoder.com/practice/33adf53e095440b2823a39146a285b77
#include <iostream> using namespace std; bool is_equal(int* x, int n) { for (int i = 0; i < n - 1; ++i) { if (!(x[i] == x[i + 1])) { return false; } } return true; } int main() { int n; while (scanf("%d", &n) != EOF) { if (n == 0) { break; } int candy[n]; int candy_copy[n]; int count = 0; for (int i = 0; i < n; ++i) { scanf("%d", &candy[i]); } // for (int i = 0; i < n; ++i) { // if(candy[i]%2==1){candy[i]++;} // } while (!is_equal(candy, n)) { for (int i = 0; i < n; ++i) { // if (candy_copy[(i + 1) % n] % 2 == 1) { candy_copy[(i + 1) % n] = (candy[(i + 1) % n]) / 2 + (candy[i % n]) / 2; } else { candy_copy[(i + 1) % n] = (candy[(i + 1) % n] + 1) / 2 + (candy[i % n]) / 2; } if (candy_copy[(i + 1) % n] % 2 == 1) { candy_copy[(i + 1) % n]++; } } copy(candy_copy, candy_copy + n, candy); count++; } printf("%d %d\n", count, candy[0]); } return 0; }