题解 | #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;
}

全部评论

相关推荐

评论
点赞
收藏
分享
牛客网
牛客企业服务