問題はこちら
No.8 N言っちゃダメゲーム - yukicoder
よくあるやつ
1手目に(N-1)%(K+1)を言い、あとは(K+1)での剰余が(N-1)と等しくなるように返していけばN-1が言えるので勝てる
(相手はが1~Kのいずれを足しても、対応するK~1を足せば増分の合計をK+1にできる)
逆に1手目でこれをしないと相手がこの必勝法を使うので負けるので、(N-1)%(K+1)が0だと負ける
int main(){ int p,n,k; scanf("%d",&p); while(p--){ scanf("%d%d",&n,&k); puts((n-1)%(k+1)?"Win":"Lose"); } return 0; }
ぎゅっとして
x;main(a,b){for(gets(&a);x=~scanf("%d%d",&a,&b);puts(--a%++b?"Win":"Lose"));}
なお
x;main(a,b){~scanf("%d",&b)&&main(b,x++&&x%2&&puts(--a%++b?"Win":"Lose"));}
ではmainの返り値が0にならなくてRE