有点意思的博弈!
当n = 1或2时, 显然Alice赢~
当n > 3时, 分两种情况~
a. n为偶数时, 由于coins为成一圈, 左右对称, 而且只能拿一个或者连续的两个coins, 所以, 当alice拿掉1~2个的coins, bob在其拿掉的coins的对称位置拿去同等数量的coins, 就能保证获胜, 所以此种情况, bob稳赢.
b. n为奇数时, 还是alice先拿, 为了能制造出a的情况出现, 所以当alice拿完之后, bob只要拿掉相应的coins使之又成为对称的两边(alice拿一个, 则bob在i其对称位置拿掉两个, alice拿两个, 则bob在其对称位置拿掉1个), 则又回到情况a, bob稳赢.
所以只要n >= 3, bob总有办法稳赢.
// Problem#: 1087
// Author#: Reid Chan
#include <iostream>
using namespace std;
int main() {
int num;
while (cin >> num && num != 0) {
if (num == 1 || num == 2) {
cout << "Alice" << endl;
continue;
}
cout << "Bob" << endl;
}
return 0;
}