ICPCに参加してみた

この記事はUEC 2 Advent Calendar 2023の1日目の記事です!



はじめに

自己紹介

UEC23 I類 4クラスの他力本願寺です。普段は将棋をしたり、競プロをやってみたり、サッカー・フットサルを見たり、F1を見たり、割と多趣味な人間です。AtCoderは茶色です。

なぜアドカレに参加したの?

あくあくんのツイートを見て、12/1の参加者がいないようなので飛び入り参加することにしました。ただいま東京駅を出発したところです。目的地に着くまでに書き終わることができるかな?

本編

ICPCとは?

ICPC とは、ICPC Foundation (2018 年まではACM (Association for Computing Machinery) という計算機学会)が主催する、International Collegiate Programming Contest (国際大学対抗プログラミングコンテスト) という名前のプログラミングコンテストです。同じ大学で3人一組のチームを作り、チームでプログラミングと問題解決の能力を競う大会です。全世界で毎年3万人以上が参加する大会に成長しています。

ICPC 国際大学対抗プログラミングコンテスト

ICPC参加の経緯

DiscordのUEC23ゲーム鯖の競技プログラミングスレッドにおいて、とらくんがICPCのメンバーが1人足りないということで、募集してくれたので参加しました。アドカレと一緒で数合わせみたいな感じですね。

メンバーとの顔合わせ

僕はチームのメンバーとクラスが違ったので、顔合わせの機会を作ってもらいました。チームの3人のAtCoderの色は茶、灰、灰でした(当時僕は灰色でした)。
チーム名はそこで「CodeWarriors」に決定しました。ChatGPTにいい感じのチーム名を何個か出してもらい、その中から決定した感じです。
そして、過去問を3人で見てみたのですが、A問題はその場で解けて、B問題は解くのが難しそうという雰囲気でした。そこで、本番では、2完を目指して頑張ろうという結論になりました。

国内予選

国内予選は3時間で行われます。実行時間制限がないので、多少計算量が多くてもごり押すこともできます。国内予選は7月7日に電通大から参加する8チームがCEDに集まって行われました。
A問題は10分弱で僕が解きました。B問題はみんなで考察した後に、チームメイトに実装をしてもらい、1時間くらいで解くことができました。そこから、チームメイトの一人がD問題ができそうということだったので、D問題は任せ、C問題を残りの2人で解くことにしました。C問題は2時間ちょっと経過したときに、チームメイトが市松模様にすればうまくいくことを発見してくれたので、僕が頑張って実装して、コンテスト終了ぎりぎりに通すことができました。D問題はサンプルのアウトプットまでは出せたのですが、政界にはたどり着くことができずに、3完という結果になりました。
結果としては96位、学内順位は4位という結果でした。

参加することで得たこと

単純に競プロのモチベーションが上がりました。コンテスト後に感想戦を行って、先輩方とも話すことができたのが楽しかったです。特に同じ1年で参加した、とらくん、kanaruくん、i39くんとは結構しゃべった記憶があります。8時にPCの電源が強制的に切れるまでやりました。

来年のプログラミングの目標

今回参加してみて、国内予選を突破するのは難しいことですが、不可能ではないということがわかりました。そこで、来年のICPCでは国内予選を抜けてアジア予選に進出したいです。AtCoderの色も水色まで持っていけたら上出来だと思うので努力したいと思います。また、調布祭に電通大将棋部のOBであるnyashikiさんが来てくださり、コンピュータ将棋のことについてたくさんお話ししていただけたので来年はコンピュータ将棋を作って大会に出たりなどしてみたいです。

おわりに

アドカレによって振り返りと目標の明確化をすることができたので自分にとって有意義となったと思います。明日のSHINNさんの記事も非常に楽しみですね。僕はもうすぐ終着の金沢駅に着こうかというところです。最後まで見てくださりありがとうございました!


この記事が気に入ったらサポートをしてみませんか?