ふーらくたるの雑の記

雑な事を記していくなど

ゆるふわ競技プログラミングオンサイト参加記

2019年2月9日にFORCIA, Inc.さんで開かれた「ゆるふわ競技プログラミングオンサイト」に参加してきました。
普段の企業コンとは違い、看板に偽り無しの(いい意味で)ゆるふわなオンサイトでした。
せっかくなので久しぶりの参加記を書いていこうと思います。

コンテスト前

開始時間が14:00からと、競プロerに優しい開始時間だったので無事起床することができました。
せっかくの「ゆるふわ」コンテストなので、とりあえず会場に向かうまでの間にお酒を買ってみました。
もちろんコンテスト中に解けなくて冷えた時に、お酒を飲んで体をあっためるためです。


普段の企業コンのオンサイトだと、コンテストの結果が就職に影響してきたり、そもそもみんなが真剣にやっているのでとてもお酒を飲めるムードではないという問題があり、なかなか難しいです。
こういったことが許されるのも、こういうオンサイトならではなのかなと思ったり*1

当日雪が降ると言われていましたが、何事もなく会場に着くことができました。
どうでもいいのですが、僕はFORCIAさんの夏のインターンに申し込んで無事落とされているので、会場をみた瞬間精神的に冷え始めてもう酒開けてやろうかって思いましたがなんとか踏みとどまることができました。

コンテスト

さあコンテストだ!と、行きたいところなのですが、なぜか開始時間になってもコンテストページ(HackerRank)が開けません。
他の世間一般のイベントだったら運営の方も焦っていてもおかしくないと思うのですが、某ロシアのコンテストのせいか、コンテスタントも運営の方も「おいおいおいおいw」みたいになっていて面白かったです(ちゃんと対応はしてくださっていました)。
結局、新しくコンテストを作り直すことで無事コンテストが始まりました。

問題
www.hackerrank.com

1問目 B式A+B

bとBを使って表された2進数の数同士の和を計算して、答えをbとBを使った2進数の表記に直して出力せよ、という問題です。
コンテストで見たときは愚直に実装する方法しか思いつかなかったので、「ゆるふわとは…」という気持ちになっていました。
後で教えていただきましたが、bとBを1と0に直してからPythonのint(s, 2)を使えば一瞬で解けますね…

2問目 集合写真

1問目とは違って軽めの実装やるだけ問題。

3問目 線香

GCDするだけなのでGCDやりました。

4問目 最短経路は何本ありますか

題の通り、最短経路を数え上げる問題です。
個人的に最短経路の数え上げdpに思い入れがありまして、懐かしいなあと思いながらダイクストラを書いていました。

5問目 ガソリンスタンド

経路復元してくださいという問題です。
経路が一意に定まっているので、適当にBFSしました。

6問目

5問目を解き終わった時点で1ページ目にいて、結構ほかほかだったので、冷えた時に飲むはずだったお酒を飲むことにしました。
念願の飲酒オンサイトです。
さて6問目ですが、木が入力として与えられるので、各頂点について、他の頂点までの距離の和を求めてくださいという問題です。
とりあず全方位木DPっぽいのでうしさんのブログ記事を開きます。
あまり全方位木DPの経験がないので、うーんって言いながら頑張って紙に考察を整理していました。
さて、ここで一つ罠があったのですが、先ほど飲んだお酒が回ってきて何もわからなくなってきます。
慣れていない問題を解く前にお酒を飲むのはやめましょうね。冷えます。
考察を3回ぐらいやり直してようやくAC。

7問目

ミスったなあなんて思いながら開いてみたらセグ木貼るだけの問題が出てきてびっくりします。

8問目

ラスボス問です。
とりあえず中間点に相当する左下からどうにかするんだろうとは思って、点素パスを求める+制約が小さいというのを見て「フローっぽいなあ」なんて思います。
今思うと意味不明なのですが、「でも終点が2つあるからフローじゃ解けないや」って思って却下。
そのままぐるぐる迷走してたらコンテストが終わっていました。
あとなんかolpheが優勝していました。

コンテスト後、懇親会

僕がバチャコンに勝手に参加して、勝手に冷えている縁でJoeさんに話しかけていただいたり、ドワコンで隣の席だったこるとんさんと久しぶりに話したり、my3さんとhotpepsiさんのマラソンのお話しに耳を傾けたり、アイコンが大好きなhatooさんや、貪欲さんから社会人のお話を聞いたりしていました(受動的な行動ばっかりですね😇)。
後olpheと今夜の日経コン頑張って色変えようぜみたいな話をしていました(有言実行さすがすぎる)。
最後の方に運営のmatsu7874さんに、問題作りの大変さを聞いて、やっぱりコンテスタントとして参加したいなぁなんて思っていたら時間になっていました。
あと気づいたらピザがなくなっていました。誰か無限枚食べてないか。

感想

やっぱりオンサイトはいいですね。
特に普段なかなか会えない人とお話しできるというのは、このゆるふわ競技プログラミングオンサイトならではの魅力だと思います(DDCCとかだと人が多すぎて会えないし、通るのが難しいコンテストだと、それはそれで会える確率が少なくなるので)。
後、これが個人的にはとても嬉しかったのですが、順位を気にせず純粋に競技プログラミングの「問題を解く楽しさ」を味わうことができました。
次回も開催してくださったら嬉しいな。あ、でも懇親会のピザはもっと多い方が嬉しいです。

ところで僕は20卒で絶賛就職先募集中なので、FORCIAさんもしよかったら^^

*1:これ勝手に僕が許されたと思っているだけなので、許されてなかったらウケる