#include #include using namespace std; bool canAliceWin(long long a, long long b, bool isAliceTurn) { // 确保始终处理为a >= b的情况 if (a < b) swap(a, b); // 终止条件:当较小数为0时,当前玩家无法操作,返回失败 if (b == 0) return false; // 当前玩家可以直接获胜的条件 if (a % b == 0) return true; // 当较大数超过较小数两倍时,当前玩家必胜 if (a >= 2 * b) return true; /* 进入相减阶段(此时a ∈ (b, 2b)): 1. 当前玩家只能选择a-b操作(因为减1操作可以被对手逆转) 2. 胜负状态取决于下一轮对手是否无法获胜 */ return !canAliceWin(b, a - b, !isAliceTurn); } int main() { long long A, B; cin >> A >> B; cout << (canAliceWin(A, B, true) ? "Alice" : "Bob") << endl; return 0; }