C - 五目並べチェッカー ~やるだけ?~

f:id:peroon:20190725025306p:plain

Quiz

https://atcoder.jp/contests/arc012/tasks/arc012_3

AC Code

https://atcoder.jp/contests/arc012/submissions/6530124

感想

  • やるだけかと思っていたが想定漏れが多くて何度もWA
  • 斜めの処理は意外とやったことがなくて練習になった

テストケースをあげます

  • 下記テストケースはACコードで正しく動いたものです

sample-8.in (NO)

...................
...................
...................
......o............
.......o...........
........o..........
.........o.........
..........o........
.....x.....o.......
......x............
.......x...........
........x..........
.........x.........
...................
...................
...................
...................
...................
...................

oを最後に置いたはずなのにxが勝っているのでNO

sample-9.in (YES)

...................
...................
...................
......o.....ooo....
.......o...........
........o..........
...................
..........o........
...........o.......
......x.....o......
.....x.x...........
....x...x..........
...x.....x.........
..x.......x........
...................
...................
...................
...................
...................

xの5連続が2本あっても、交点部分に最後に置いたのなら正常です。YES

sample-10.in (NO)

...................
...................
...................
...................
.......o...........
.......o...........
.....ooooo.........
.......o...........
.......o...........
...................
...................
...................
....x..x...x.......
......x...x........
...................
...x...x..x..x.....
...................
...................
...................

xを最後に置いたのに、その前の時点でoが勝っているのでNO

sample-11.in (NO)

...................
...................
...ooooooooo.......
...................
...ooooooooo.......
...................
...................
....x.x.x.x.x......
...................
....x.x.x.x.x......
...................
....x.x.x.x.x......
...................
....x.x............
...................
...................
...................
...................
...................

sample9と比較しましょう。oを最後に置いてoの勝ちですが、それ以前に勝ちが確定しているのでNO. sample9ではxを1つ取り除いた時に「まだ誰も勝っていない」状態にできますが、sample11ではそれができないという違いがあります。