#include
using namespace std;
//输入是2到4294967294的闭区间。
//如果输入是 2 ~ 9 ,那么Stan是先手,你给我几,我就能直接一次就到这个数。Stan必胜。
//如果输入是 10~18 ,那么Ollie是后手,我不管第一次你Stan给的是几,你肯定在 2 ~ 9 之间,而你给我 2 ,我就乘以 9 ,到18了,你给我 9 ,乘以几都能超过 10 ~ 18中的任何一个数。Ollie必胜。
//如果输入是 19 ~ 162 ,那么这个范围是Stan的必胜态。因为从 10 ~ 18 这个Ollie的必胜态可以达到这个范围(这里可能有点难理解)。
//如果输入是 163 ~ 324 ,这是又是Ollie的必胜态。因为必胜态是对称的,那么Ollie也有和Stan一样大小的必胜态范围。
int main()
{
__int64 n;
while(scanf("%I64d",&n)!=EOF)
{
while(n>18)
{
if(n%18==0)
n/=18;
else
n=(__int64)(n/18)+1;
}
if(n<=9)
printf("Stan wins./n");
else
printf("Ollie wins./n");
}
return 0;
}
poj2505
最新推荐文章于 2021-09-10 16:36:09 发布