yukicoder 0008 N言っちゃダメゲーム
問題文概要
$2$人対戦ゲームをする. $N, K$ が与えられる. プレイヤーには交互にターンが回ってきて, 自分のターンになった時に, $K$ 以下の正整数 $t$ を選び, $N$ を $N - t$ で更新する. $0$ になってしまったら負け.
$N$ と $K$ が沢山与えられるので, それぞれについて先手後手のどちらが勝つか判定せよ.
制約
$1 \le P \le 100$, $2 \le N, K \le 12 * 10^4$.
解法
よくやる手で, $(N-1) \equiv 0 \pmod K+1$ かで判定できる.
ソースコード
1
2
3
4
5
6
7
8
9
10
bool solve(){
int p;
cin >> p;
rep(_, p){
int n, k;
cin >> n >> k;
cout << (--n % (k+1) ? "Win" : "Lose") << endl;
}
return true;
}
download source code