読者です 読者をやめる 読者になる 読者になる

メモ

yukicoderで遊んでいる競プロゆるふわ勢

yukicoder No.8 N言っちゃダメゲーム

問題はこちら
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