問題
考察
問題文をよく読めばYes
となるケースはかなり限られてくるのが分かるため、全てのケースを書くのも1つだと思います。ですが、そうではない考察をしていきます。
問題では盤面が下記となっております。
1 2 3
4 5 6
7 8 9
ですが、仮に0から始まった場合を考えてみましょう。
0 1 2
3 4 5
6 7 8
こうすると、ある数字に対して、何行目の何列目にあるかは以下の計算で求めることができます。
- 何行目:ある数字を3で割った数(小数点切り捨て)
- 何列目:ある数字を3で割ったあまり
これを利用していきましょう。そのために、まず$A$と$B$の入力を受け取ったあと、それぞれの値をマイナス$1$します。その後、上記の計算で各入力のものが何行目の何列目にあるかを求めていきます。そして、$A$と$B$が左右に隣接しているかを調べましょう。調べ方は、$A > B$であることから、下記の判定をすればいいです。
- $A$と$B$が同一の行にある。
- $(Aの列数) + 1$が$(Bの列数)$と一致する。
提出コード(コンテスト後)
ご不明点などがあれば教えていただけると幸いです。