ICPC国内予選エアプ参加記

ICPCの国内予選がありましたね。僕はこれに参加していないので、エアプ参加記を書きます。大会形式すら知らないので完全にエアプです。

 

チームについて

 幼馴染のあおいちゃんと、サークルの先輩の黒子さんと僕の3人チームで出ました。

あおいちゃんは高校1年生のときに競技プログラミングを始め、練習サイトではユーザー名が青色になっています。髪の毛はショートで今は青いのですが、高校の頃は茶色とか緑とかに染めていた時期もありました。理由はよく分からないのですが、とにかく色が奇抜すぎるのであまりコメントしないようにしています。

黒子さんはいつから競技プログラミングを始めたのかよく分かりませんが、ユーザー名は黒色です。本人によると、黒子さんはユーザー名の色を自由に設定できるようになっているらしく、黒が好きなので黒にしているそうです。以前あおいちゃんに「君も自由に色を設定できるようにしないのか」と聞いてみたところ、嫌な顔をされてしまいました。女の子って難しいですね。

僕は今回あおいちゃんに誘われて初めて参加したので、競技プログラミングのことは正直ちょっとよく分からないです。一応プログラミングの経験はあり、あおいちゃんからは「最初の方の簡単な問題を解いてくれれば大丈夫だよ」と言われていました。

 

 

本番前

あおいちゃんが中心になってメンバーに声をかけ、1か月くらい前から週に1度3人で集まって過去問を使った練習をするようにしていました。しかし、黒子さんの生活習慣が不規則なせいで3人そろって練習できたことはほとんどなく、僕が1人で最初の1,2問を解いたらあおいちゃんに交代してもらって後はあおいちゃんが全部やる、という集まる意味のあまりなさそうな練習しかできていませんでした。しかも「同時にパソコンを使えるのは1人まで」という変わったルールのせいで、僕が解いている間あおいちゃんを待たせてしまうのを気にしてしまうくらいでした。

 

 

当日

 朝10時に会場前に集合だったのですが、前日の午後にかなり長い昼寝をしてしまったため全然眠れず、あおいちゃんが起こしに来てくれなければ寝坊してしまうところでした。朝ごはんにあおいちゃんから弁当のおかずの残りをちょっともらい、2人で会場に向かいました。僕たちは時間通りに会場についたのですが、黒子さんはやはり寝坊を決め込んでしまったらしく、連絡すらつきません。どうしようもないので、とりあえず2人で出つつ黒子さんが来るのを待つことにしました。

会場はチームごとに部屋が別々になっており、トイレ以外で部屋から出なければ声を出して話したり席を立ったり食事をとったりしても大丈夫とのことでした。机には人数分の椅子が用意されていて、パソコン1台と軽食が置いてありました。

 

 

本番

 問題はA問題からZ問題までの26問あり、これを10時間かけて解きます。最初の数問は難易度順に並んでいて、僕は過去問の傾向からA問題とB問題を順番に解きました。どちらも1回の提出で正解判定をもらえたので安心しました。あおいちゃんと席を交代し、あおいちゃんがC問題からE問題までをサクサクと解いていきました。あおいちゃんは提出した問題の判定結果を見ずに次の問題の提出コードを書き始めていて、慣れている人は違うなあと思いました。

F問題から先は、E問題までより難しいような問題が難易度に関係なくランダムに並んでいるらしく、あおいちゃんは画面に表示されている順位表と印刷した問題用紙をにらめっこしながらどれを解こうかと考えているみたいでした。僕はもう用がなさそうなので席を立って部屋をウロウロしようとしましたが、あおいちゃんから「ちゃんと席に座って椅子を温めるように」という旨の注意をされてしまいました。僕はとっさに機転を利かせて、まだ来ていない黒子さんの椅子の座面にパソコン本体を置いてみました。効果はてきめんで、あおいちゃんに褒められました。

開始から1時間ほどして、M問題とG問題の考察が終わったらしく、あおいちゃんによると実装も簡単らしいので、僕に実装してみないかと提案してくれました。どちらも自分には不相応な難易度の問題ですが、あおいちゃんの説明を聞くと確かに実装はできそうだったので挑戦してみたところ、どちらも正解判定をもらうことができたので、あおいちゃんとハイタッチして喜びあいました。チーム戦っていいですね。ちなみに黒子さんはまだ来ていません。

 

その後2,3時間、あおいちゃんも粘り続け僕も椅子を温め続けで何とか半分ほど解くことができましたが、残った問題は難問ぞろいでなかなか手が付けられそうにありませんでした。気が付くとかなりおなかがすいていたので、休憩ということで2人であおいちゃんの手作り弁当を食べることにました。あおいちゃんの弁当は高校のころは毎日食べていましたが、大学に入ってからは時間割も全く違うため食べる機会はまれでした。とてもおいしくて大好きなので本当は毎日でも食べたいのですが、照れくさくてなかなか言い出せません。不用意においしいとか言うとあおいちゃんがすぐ調子に乗るのもあって、高校のころは「可もなく不可もない」に近い意味の類語表現をたくさん覚えて使い回すようにしていました。

でも久しぶりに食べたあおいちゃんの手作り弁当は本当においしかったので、思わず「すごくおいしい」と言ってしまいました。案の定あおいちゃんは有頂天になり、その勢いで食べながら2問くらい解いてしまいました。実にコンテスト開始5時間後のことでした。

 残り5時間であと10問になりました。窓から差し込む日の光も傾き始め、30分に2問解かないと全問解けないという難易度にマッチしない絶望的なペースも相まって、2人に焦りが出てきます。あおいちゃんは問題用紙と一層真剣ににらめっこするようになり、僕も尻に力を入れて椅子が少しでもより効率的に温まるようにと踏ん張りました。しかし、既に手のつけようもない問題しか残っておらず、完全に膠着してしまいます。順位表を見ても、この10問は最上位層にもほとんど解かれておらず、あおいちゃんが解くには難しそうでした。また、自分たちのチームが解いた問題はやはり多くのチームに解かれているため、全体順位も決して高くありません。

 

そのまま30分が経ち、僕が「そういえば黒子さんまだだね」と言いかけた瞬間、いきなり部屋のドアが勢いよく開き、全身黒のいつものスタイルでまさかの黒子さんが登場しました! そのショックであおいちゃんがついにショートしてしまいました。黒子さんは、僕たちの耳に届くことなく天井まで浮き上がってしまうくらい軽い謝罪の台詞を口にしたあと、より温かそうな僕の椅子を奪ってパソコンの前に陣取りました。そしてまだのびているあおいちゃんの手からくだんの10問の問題用紙をひったくり、適当な順番にシャッフルして(後日聞いた話によると適当にシャッフルしたのではなく瞬時に判断しつつ難易度順にソートしたそうです)、一番上になった問題から順番にバチバチと提出コードを打ち始めました。黒子さんは僕があおいちゃんの背中を揺すったりおでこを冷やしたりしている間に「はいA~C~」とか意味の分からない(問題に正解したという意味だそうです)言葉を連発し続け、一時間後にはなんと暫定1位に躍り出てしまいました! そしてそれを知ったあおいちゃんがまた気を失うことになりました。

 その後の黒子さんは、提出コードを書き溜めておいて2位のチームが1問解くたびにこちらも1問通すという嫌がらせみたいなことを続け、残り30分になって順位表が凍結されるとその瞬間に残りの問題を一斉に通すというかなり陰湿なことをしました。2位のチームさんごめんなさい。予選通過枠は複数あるみたいなので、世界大会でがんばってください。

 あと、あおいちゃん。本当にお疲れさま。黒子さんはすごいけどダメ。

 

 

結果

本番の様子から察しはついていると思いますが・・・・・・

   国内予選1位通過

 です! 世界大会でもよろしくお願いします!

 

 

 

書いた感想

3人チームで出るってことしかよく分かってませんでした。競プロに真剣でなくてすみません......

 

追記(2021/3/17)

なんとこの参加記に続編が出ました......(は!?)よんでね!

ICPC決勝空気演奏参加記2 - よこのブログ