tookunn’s diary

主に競技プログラミング関係

RUPC2016に参加してきました

3月6日から3日間立命館大学の方で立命館大学競技プログラミング合宿(RUPC)があったので参加してきた体験を記憶を頼りに書き記していきたいと思います。

0日目

前泊しました。
立命館大学滋賀県にあるので、新潟から上越新幹線で東京駅まで行き、乗り換えて東海道新幹線で京都駅、京都駅から在来線の琵琶湖線で滋賀の南草津駅まで行きました。
そして南草津駅付近のホテルにチェックインしました。


ARCがあるということで参加しようとしたら、ホテルのWi-Fiに繋がらないトラブルが発生して焦りましたが、テザリングを使って見事参加することができました。
結果はA,Bが解けてC,Dは全く分からずみたいな感じでした。
ARCの後はTwitterのTLを眺めながら部屋でぐーたらして就寝しました。

1日目

コンテストがお昼過ぎにあったので、@yurahunaさんと南草津駅で合流をした後、お昼にラーメンを一緒に食べに行き、バスで立命館大学まで行きました。
オンサイトはチーム戦で、チームは@yurahunaさんと@kenkooooさんと組ませていただきました。



内容としては最初に@yurahunaさんがさっとBを通して、その後にAでハマっていた僕に@yurahunaさんがAの解法の考え方を教えてくれて、やっとの思いでAを通しました。
@kenkooooさんはCを知らない内に解いていました。(笑)
そのあと@yurahunaさんとDとEの考察をしていて、@kenkooooさんがEは良い整数を全列挙しても制約内ならそんなに多くなくて、良い整数で割っていけば解が求まるじゃないかということを言っていて、
@kenkooooさんにEをお願いしてEを通してもらいました。
後はDを悩み続けてコンテストが終了し、解説見て、なるほどと思ったり、理解が追いつかなかったりしました。

そして懇親会会場に移動して、懇親会では主に@kenkooooと@nsd_fbさんと@Drafearさんとお話ししたり、ちょっと遠くのテーブルの話に耳を傾けたりなどをしました。
懇親会が終わった後はホテルでゴロゴロした後就寝しました。

2日目

2日目は同じホテルに泊まっていた@ctyl_0さんと@kenkooooさんと合流し、バス停で@yurahunaさんと合流して会場に向かいました。
チームは立命館大学の方2人と大阪工業大学の方とチームを組ませてもらいました。
チーム内ではそれぞれ、しいたけさん、きしさん、かずさん、という風に呼び名をつけてそこからチームを決めました。


僕は最初にBを担当して、愚直に実装したらサンプルが合って提出が通らないという事態に陥ってデバッグと考察を繰り返していました。
きしさんがFを通して、しいたけさんが僕とかずさんのそれぞれ担当していた問題を一緒に考察をして、かずさんがAを通しました。
そのあと苦戦していたBにチーム全員で解きにかかる感じになりました。
その途中できしさんがCを通していました。
そして、かなり時間ギリギリでBを通すことが出来ました。
問題をほとんど目に通せてなかったので、A,B,Cの解説を見て納得して、残りの問題は難しそうという印象しか持てなかった。

懇親会ではかずさんと料理を食べながら話して、5時間コンテストでかなり疲れて眠たかったので、懇親会が終わった瞬間に会場を後にしてホテルに直行しました。

3日目

最終日は1人で会場まで行きました。


チーム決めは立命館大学の方1人と会津大学の方1人をマッチングしてそれ以外の方1人をくじで決めて合計3人のチームを作ろうということになりました。
立命館大学会津大学の方たちのマッチングをしている間に@kenkooooさんと雑談をしていたら、マッチングが既に終わっておりチーム決めが完全に終わっていて、@kenkooooさんと2人だけでチームを組むことになってしまって、これは@kenkooooさんにものすごい負担をかけてしまうことになって申し訳ないなと思っていたら@kenkooooさんがチームメンバーを募集してくれていて、
ちょうど遅れて来ていた@threepipes_sさんが加わってくれて見事3人チームでコンテストに参加することが出来ました。
これはホントに助かりました。
そして、メンバーが揃って良かった~と安心している間にコンテストが始まりました。
とりあえず一番弱い僕がAを担当することになって、Aを考察して、やっと実装をしたのにサンプルが全部合わなくて、Bを解き終わった@threepipes_sさんが僕のAのソースコードを見たり、問題文を読み直したりして一緒に考えてくれて助けてもらいました。
そしたら、僕の実装が所々間違っていることに気付いてくれて、そこを直したらサンプルの1,2が通るようになって、残りのサンプルは何で通らないんだと思ったら、問題を誤読していたことに気付いて、そこを修正したらAC出来ました。
その後@threepipes_sさんがC、@kenkooooさんがDを考えている間に僕は残りのE、F、Gの問題をチームメンバのために読んでおくことに専念していました。
EとFを読み終わったぐらいに@kenkooooさんにEを見てもらい、Eは最小費用流っていうものを使えば解けそうだということと、僕は最小費用流が分からずだったので、最小費用流についても説明してくれました。
他のチームメンバが問題で悩んでる隣で、F、Gを一応必死に考察してみましたが、Aで苦戦した僕が解けるわけもなくコンテストが終了しました。
解説時間では、一応H以外の問題文は読んだのですが、解説を見てもセグメント木とか最小費用流とか聞いたことはあるけど、あんまりよくは知らないテクニックが出てきたので、もっと勉強しなきゃなっていう感じになりました。
解説の後に全員で写真を撮ってRUPCの全日程が終了し、立命館大学を後にしました。

南草津駅までついたら、新幹線の時間まで余裕があったので、@yurahunaさんと@kurome____さんと@ctyl_0さんで近くの定食屋で昼食を食べました。
その後、京都駅でそれぞれ帰路につきました。
京都駅のお土産屋でお土産を選んでいたら再度偶然@ctyl_0さんに出会い、僕の新幹線の時間まで喫茶店でいろいろお話しをしました。
@ctyl_0さんにお別れを告げた後、行きと同じように新幹線に乗って新潟まで帰りました。

感想

まず、自分が弱くて尚且つチームを組んで競技プログラミングをすること自体が初めてで、3日間チームを組んでくれた方々にご迷惑をおかけして申し訳なく思っています。
でもその反面、複数の方たちと同じ問題について一緒に考えたり、問題の解法やテクニックについて説明をしてもらったり、チーム戦ならではの経験ができて、普段周りに競技プログラミングをやっている人がほぼ皆無の環境にいるので、コンテスト以外の時間でもいろいろな競プロerの方たちのお話しもいろいろ聞けて良かったなと思います。
今回のRUPCで得たものをうまく今後の練習やコンテストに役に立てていきたいです。
そして、もし次回のRUPCに参加することがあれば少しは成長をしたところを見せたいなと思っています。
3日間競技プログラミングに生活を捧げる生活最高でした。
RUPCのオンサイトに参加された方、オンラインで参加した方、3日間お疲れさまでした。