从1开始,每次可以乘以2-9,看谁先得到n
找规律,找到先手的必胜态和必败态。
/*==========================================================*\
| 1-9 (A必胜)
| 10-18 (B必胜)
| 19-162 (A必胜)
| 163-324 (B必胜)
| 规律:N循环除以18,余数是[1,9]A必胜,[10,18]B必胜
\*==========================================================*/
int main()
{
ll n;
while (cin>>n) {
ll l = 1, r = 9;
int times = 0;
while (1) {
if (n >= l && n <= r) break;
l = r + 1;
if (times % 2 == 0) {
r = r * 2;
} else {
r = r * 9;
}
++times;
}
printf("%s\n", times % 2 == 0 ? "Stan wins." : "Ollie wins.");
}
return 0;
}