問題はこちら
No.384 マス埋めゲーム2 - yukicoder
yukicoder No.166 マス埋めゲーム - メモよりも少し頭を使う。
全てのマスが埋まった⇔「全ての列が選択された」または「全ての行が選択された」 となる
また、「選択されていない列の数+選択されていない行の数」という量を考えると、これはゲームが終了するまで1手ごとに1ずつ減っていく
よって、各プレイヤーが「自分が負けない」ように行動する場合、負けるのは上で定めた量が2の時に手番が回ってくるプレイヤー
これは(H+W-1)番目だからH+W-1とKがmod Nで一致するかどうかを見れば良い
int main(){ long a,b,c,d; scanf("%ld%ld%ld%ld",&a,&b,&c,&d); printf((a+b-1-d)%c?"NO":"YES"); return 0; }
ぎゅっとする
long c,d;a;main(b){a=scanf("%d%d%ld%ld",&a,&b,&c,&d)<printf((a+b+~d)%c?"NO":"YES");}
84B
17/01/23追記
なんでprintf使ってるの?馬鹿なの?死ぬの?
long c,d;a;main(b){a=scanf("%d%d%ld%ld",&a,&b,&c,&d)<puts((a+b+~d)%c?"NO":"YES");}
実はdをintにしてっしまっても通る
INT_MAXより大きな値をint型に読み込もうとしたときの動作は未定義らしい
long c,d;a;main(b){a=scanf("%d%d%ld%d",&a,&b,&c,&d)<puts((a+b+~d)%c?"NO":"YES");}
81B