naoya_t@hatenablog

いわゆるチラシノウラであります

ABC A/B問題のWA原因リスト

水曜深夜の比屋定先輩タイムまですこし時間を持て余したので、ABCの不出場回のA/B問題*1を埋めていった。

  • 使用言語: Python2 (2.7.6)*2
  • エディタ: 問題ページのフォームに直接書き込み*3

これで現行のスコア体系になってからのABCはD問題1つ*4を残して全部埋まったので、明日からARCのE問題以降に取り組める(取り組まざるを得ない)。

解いた問題の解法の詳細はここには書かないが、代わりにWAやREを出した問題で何故WAを出したのかを列挙してみる
AtCoder ProblemsのSubmissions一覧からWAを出した物のdetailsを見て、提出コードだけから(問題は見ずに)WAの原因を思い出していった。結構覚えているものだ。

A問題(100)

[ABC097] A - Colorful Transceivers (1WA)

  • a→(b経由)→c を求めるところをandではなくorにしてた

[ABC093] A - abc of ABC (1WA, 1RE)

  • sorted(str) は文字列ではなく文字のリストになるのを失念

[ABC083] A - Libra (1WA)

  • 不等号の向きが逆

[ABC082] A - Round Up the Mean (1WA)

  • 切り上げでなく切り下げてた

[ABC061] A - Between Two Integers (1WA)

  • bとcを間違えてた

[ABC047] A - キャンディーと2人の子供 / Fighting over Candies (1WA)

  • intキャスト忘れて文字列のまま比較してた

B問題(200)

[ABC045] B - 3人でカードゲームイージー / Card Game for Three (ABC Edit) (2RE)

  • コピペ時にインデントが崩れてた

[ABC074] B - Collecting Balls (Easy Version) (1WA)

  • (ノートには2xって書いてたのに)行って帰ってくる分で2倍するの忘れてた

[ABC075] B - Minesweeper (1WA)

  • 8方向のベクトルを用意したはずが重複があって6方向しか見てなかった

[ABC081] B - Shift only (1RE, 1WA)

  • pritn
  • 偶数じゃないやつまで2で割り続けてた

[ABC082] B - Two Anagrams (1RE)

  • pritn

[ABC092] B - Chocolate (1WA)

  • a_i日で1つだけど初日に来るので切り上げの必要があるのを見落とし

[ABC095] B - Bitter Alchemy (1RE)

  • リスト内包表記でfor "i in" 書き忘れ。

// forで変数を使わず単にn回繰り返したい時とか、略記できるようにしてほしいw

[ABC098] B - Cut and Count (1WA)

  • items() のkeyとvalueの取り違え(kを使うべき箇所でv)

総評

サンプルケースでテストしていれば防げるようなものが大半なのがある意味救いではある。

3時間前後で97問を解いて、比屋定先輩に会えた時には首が痛くなっていた。
steinsgate0-anime.com

*1:AtCoder Scoresに載っているもののみ、現行のスコア体系になる以前の回は対象外。で97問残ってた

*2:いまだにpython3より2の方が書き慣れている

*3:サンプルケースでのテストはほとんどしていない

*4:ABC050 D - Xor Sum