又是一道思维题,首先可以想到如果k = 1,那么如果n是奇数则必是Adrien赢,偶数就是Austin赢,然后考虑k > 1的情况,如果k大于1了,并且n是奇数 那么Adrien可以第一次拿掉最中间的然后之后按对称Austin的位置去拿,就可以赢,那么如果是n是偶数就要之一如果k>=2那么Adrien一开始可以拿掉中间的两个来还原奇数的情况,所以还是Adrien赢,所以总结来说Austin赢的情况只有n = 0(特殊点) 或者n是偶数并且k=1,还要注意的是如果n<=k Adrien直接赢
代码如下(示例):
#include<bits/stdc++.h>
using namespace std
;
int main()
{
int n
,k
;
cin
>>n
>>k
;
if(!n
){
cout
<<"Austin"<<endl
;
}
else{
if(n
<=k
) {
cout
<<"Adrien"<<endl
;
}
else{
if(n
%2!=0) {
cout
<<"Adrien"<<endl
;
}
else{
if(k
==1){
cout
<<"Austin"<<endl
;
}
else{
cout
<<"Adrien"<<endl
;
}
}
}
}
}
转载请注明原文地址: https://lol.8miu.com/read-36714.html