カメヲラボ

主にプログラミングとお勉強全般について書いてます

競プロ日記001: ABC269

ABC参加2回目

先週の初参加に続いてUNICORNプログラミングコンテスト2022(ABC269)に参加しました.MM140とAHC014が始まっていてかなりハードではありますが,やると決めたので気合で参加です.

方針

言語の選択

初参加のときは最初Pythonで書いていて途中でC++に変えました.マラソンマッチのときはいつもC++なので,今回は最初からC++を使うようにしました.Pythonの方が楽な場合が多いですが,あくまでマラソンマッチがメインなので常にマラソンをイメージしてやるようにします.

解答順序

今回も素直にA,B,C,…の順番に解きました.1時間くらいで目標のDまで解けたので終わりにしようかと一瞬思ったのですが,欲が出てきた+E問題がインタラクティブ問題という見慣れない形式で興味が出てきたため,結局時間いっぱいやってしまいました.F以降の問題に目を通していないので,次回はとりあえず見てみるくらいはやっておこうかと思いました.

テストケースとローカルテスト

A~Cはサンプルを実行するだけにしました.Dは入力サイズ的に大丈夫かと思ったのですが,あまり慣れていないUnion Find Treeを使う問題だったので大きめのテストケース(N=1000)を一応作ってテストしました.全然問題なかったので,今後は余程微妙でない限りはサンプルのみで突撃します.

ソースコード

そんなにガッツリローカルテストをするわけでもないので,今回はABC269というディレクトリを作って,その中にa.cpp, b.cpp, ...のようにソースファイルを作成しました.これで全然問題なさそうです.

結果

今回はABCDの4問が通って,EでWAが出て修正中に時間切れになりました.

ABCのレーティング2022年9月18日現在
最初の方はただ上がっていくだけなので気楽で良いですね.

WAの原因

EのWAは原因が2つあって,1つは出力フォーマットのミスです.矩形領域だから

? (矩形の左上) (矩形の右下)

かと思い込んでいましたが,実際は

? (行の範囲) (列の範囲)

でした.問題をちゃんと読まないとダメだということですが,これに気付いたのが終了5分前でした.提出の一覧画面に「詳細」という項目があり,そこでWAの数が確認できることを知ったのが遅すぎました.ここをすぐに確認して,「サンプルですらWAになっているのでオカシイ!」と気付けばもっと早く修正できていたはずです.

さて,急いで修正したので間に合ったのですが,それでもWAでした.これは限度の10回(縦横10回ずつと考える)を質問した場合の処理に対応できていなかったからですが,1つ目のミスの発見が早ければ間に合っていたかもしれません,残念.

次回に向けてとか感想

MM140AHC014を並行してやっていて全く余裕はないので,参加できたとしても今回とほぼ同じ方針で進めようかなと思います.AHC014はとても賑わっていてすばらしいですね.MM140の問題はとても面白いしもっと参加してほしいんですが,新規の参加者があまりに少なすぎて常連ばっかりの飲み屋状態になってきているのが少し心配です.