普通的博弈推理,[n,无穷]为必败点,那么[n/9,n-1]为必胜点,那么[n/9/2,n/9-1]为必败点,依次类推即可。
#include<iostream>
#include<cmath>
using namespace std;
int main()
{
int n;
while(cin>>n)
{
int i;
for(i=0;n>1;i++)
{
if(i&1)
n=ceil(n/2.0);
else
n=ceil(n/9.0);
}
if(i&1) cout<<"Stan wins."<<endl;
else cout<<"Ollie wins."<<endl;
}
return 0;
}