雑記帳

怪文書書庫

ICPC2020 予選参加記

ICPC2020の学内予選に参加しました。

私は普段は競技プログラミングとは縁のない人間なのですが、出場できる最後のチャンスということもあり、幸い友人に誘って頂いたので出てみようと思った次第です。

事前練習

あんまりやってなかった....というよりなにをやればいいのかわからなかったのでとりあえずAOJ-ICPCの200-250点問題くらいを数問解いたり、メンバーでDiscordに集まってバーチャルコンテストをやったりした。自分は基本的に考察が軽くて実装が重い所謂「やるだけ問題」を積極的に拾っていく方針で行こうと思った。

当日

リハーサルが開催されていることを失念しておりのんきに飯を食ったりしていた。(は?) 16:30に競技開始だったので15:00くらいにDiscordに集まって適当に雑談したり情報共有などをしていた。

競技開始

問題を開こうとするが、ブラウザの画面は一面の白塗り状態のまま。何も表示されなかった。障害だろうか。画面の左上に申し訳程度に表示されていたメッセージによると、どうも問題DBが吹き飛んでいるらしい。どうやら他のチームも問題が見れなくなっているようなので障害と判断して静観。雑談に徹する。

10分くらいで復旧。早速B問題を見る。問題文の意味がわからなくて困惑していたが、じっくりと読んでみるとただのやるだけだったのでサクッと書いて提出。ここで事件が起きた。

ICPCの提出ルールとしては、アップロードされている複数のデータセットを使ってローカルで実行し、2回連続で正しい答えが吐けていればACというものだ。ここまでは割とよくあるシステムかもしれない、だがICPC固有のものとして、ソースコードを回答と併せて提出する必要がある。更に、2回の提出において、ソースコードは完全に同一なものでなければならないというルールがある。

回答をテキスト形式で提出する必要があるため、多くの人はテキストに回答を出力して提出するに違いないが、ここで私は、「回答の出力ファイル名を1回目と2回目で変えてしまう」というミスを犯してしまったのだ.....

具体的には、1回目の回答ではファイル名ansに出力し、2回目の回答ではファイル名ans_2に出力してしまった。

主要な回答ロジックに手を加えたわけではない。だが厳正なるICPCのジャッジシステムがそのような事情を慮ってくれるだろうか.....?

否である。

機械の厳正なる判定を受容できなかった私は焦りに焦り、なんと2回連続で提出に失敗し、回答権を失ってしまった.....

とまあ、このような事故が起こったが沈んでいても仕方がないので、D問題を眺める。BNFが書かれているので脳死でパーサーを書く。まあ普通にpermutationで間に合うやろwと言いながらこれまた脳死で書く。n=13で間に合わない。階乗オーダーだしそれはそう。

なにもわからなくなった私は終了時間まで椅子を温めることとなった。

感想

悔しい!!!!!!!!

こんなに悔しいと思ったのは割と久しぶりかもしれない。感想戦などを行っているうちに悔しさが増してきた。だがもう来年以降は出場できない。俺たちの夏は終わったのだ.....

競技プログラミングを真面目にやってみようかなあと思った一日になった。皆さんありがとうございました!