AtCoder Beginner Contest 203(Sponsored by Panasonic)の問題[E - White Pawn](コンテスト参加者中 7.1%正解)をPythonで解く
コンテストでは出来なかった問題を復習してみます。
問題はこちら。
atcoder.jp
AtCoder Liveの解説聞けば実装方針は理解できる
チェス版でコマを動かした結果、どういう結果の組み合わせがあり得るか?という問題。
問題を読む限りは、盤面のテーブルを作ってDPで解く感じ?と思うが、盤面が無茶苦茶でかいのがあり得るから、コマに注目して処理していく実装方針。
書いたコード
AtCoder動画の兄さんの説明を元に、自分で実装してみたがACでず。
あきらめで、他の人のACコードを参考に実装したモノか次のコード。
AtCoderにて実行した結果は、
PyPy3(7.3.0) AC
Python3.8.2 AC
実装コードの参考元
コチラ。
atcoder.jp
まぁ、ほとんどこのまんまなんだけど。
setを使ったエレガントな実装で素晴らしい。
judgelawさん、ありがとうございます。
自分でスクラッチから実装したコードも方針はあってたんだろうけど
- 到達不能な黒ポーンの除去
- 黒ポーンのX座標が同じ値のときの考慮が機能してなかった
が問題だったっぽいなー。
正解率計算
A問題回答者 8393
E問題正解者 596
596 / 8393 = 7.1%