日本すごい、すごすぎる!
以前お伝えした「リクルートプログラミングコンテスト」。このコンテストは、リクルートホールディングスが「日本の優秀な学生エンジニアが、世界レベルのエンジニアと触れ合う中でその実力を示し、世界レベルでのキャリアを歩んでいこうというインスピレーションを受けられるようなチャンスを提供していきたい。」という思いで、リクルートの関連会社のアメリカIndeed社と共同開催したもの。前回は日本で行われた予選の様子をお届けしましたが、その上位入賞者が挑戦したMIT(マサチューセッツ工科大学)でのアメリカ本戦ツアーに同行することができたので、レポートしますよ。
先にお伝えすると、マジにマジで日本すごいという結果に終わったのです。これはもう、MITを席捲したといっても過言ではない……! そして、予選の時は「日本の若き学生エンジニアたち、すごすぎてちょっとよくわからない」という状態だったのですが、同行したことによって彼らの「すごさの片鱗」がわかってきました。
ですが、まずMITにたどり着くまでが大変だった……という話からさせてください!
奇しくもアメリカ本戦ツアーへの出発日は2月9日(日)。関東に大雪が降った翌日です。上の画像は、僕が成田空港まで向かうまでに見た光景。完全に線路が雪に埋まってます。
本戦ツアーの参加者は関西方面と関東方面の二手にわかれていたのですが、関東からは出発することができず、翌日のフライトでMITのお膝元・ボストンの地に降り立つこととなりました。なんというかもう、すでに苦難を乗り越えるヒーローものの物語の予感……!
そんな彼らとともに、決戦の地MITに乗り込みました。
匿名の卒業生から創立150周年の記念に贈られたというオブジェもお出迎え。数字でできているというのが実にMITらしいです。
出迎えたのは大量のピザ。さすがアメリカ! こんな量のピザ、初めて見ました。
本戦が始まる前とは思えないリラックスした雰囲気が会場の教室には漂っていました。
いよいよコンテスト本戦開始!
ただし、リラックスした雰囲気もコンテスト本戦が始まると一変。キーを叩く音だけが鳴り響き、一気に緊迫した雰囲気に。
なお、競技時間は3時間1本勝負。出題された10問のうちより多く問題を解いた人が上位となり、同じ問題数であればより早く解いた人が上位となるルールです(問題を解く順序は自由)。
印象的だったのは、参加者が思い思いのスタイルで集中していたこと。教室のデスクが小さかったこともあり、それならいっそ!と床に直接あぐらをかくスタイルで臨んだ参加者も。
そして、運命の結果大発表!
3時間におよぶコンテストが終了。みなさん、おつかれさまでしたっ。
実は、競技中も参加者の成績はリアルタイムで共有されていて、熾烈なトップ争いが繰り広げられていました。そしてその結果はというと……
ドン!上位20人のうち、日本側の参加者を赤く囲ったのが上の画像。なんと、20人中15人が日本勢!!! ちなみに、全参加者が137人、日本からの参加者は22人だったので、どれだけ日本勢のレベルが高かったのか、想像してもらえると思います。
そして、惜しくもトップを逃してしまったのですが、2位のKomakiさんと1位の差はなんとたった2分。惜しい、惜しすぎる。そして、このKomakiさんは……
さきほど紹介したあぐらスタイルの方! 実は僕、この姿にデジャヴュを覚えていたんです。
というのも、雪で翌日にずれ込んだ出発の日、成田空港の待合室で同じような光景を目にしていました。姿勢もほとんど一緒!(そして何故かいつも裸足……)
Komakiさんに話を伺うと「どこの場所でもスイッチが入ったら、集中してまわりが気にならなくなる」とのこと。だからこそ、このコンテスト本戦の場でもいかんなく実力を発揮できたんですね。
でも、本人としては僅差での2位という結果に忸怩たる思いもあったよう。それもそのはず、1つのバグをとるのに時間がかかってしまい、それさえなければ2分差は逆転できていたはずだったのです。
しかし、9問目を解いたのは2人のみ。万雷の拍手と惜しみない賞賛を贈りたいと思います。そう思ったのは僕だけではなかったようで……
MITの学生から、この2人しか解けなかったガチ難問について質問され、ホワイトボードを使って答えるというシーンがありました。
僕的にはここが今回の本戦ツアーのハイライト。こうしてガチで戦いあったあとはラグビーばりのノーサイド(※)。からのガチな交流。
※ラグビーは激しく戦ったあと、ひとたび試合終了のホイッスルが鳴れば、敵味方なくお互いの健闘をたたえ合う様子を「ノーサイド」っていうんです。競技プログラマー同士の親睦を深める場ともなったということで、これだけでもこの本戦ツアーが行われた意義があったのではないかと思うくらいです。
難問中の難問! これが解けたらマジすごい
さあ、そんな世界の超トップレベルの中でも2人しか解けなかった問題、見てみたいと思いませんか? それはこちら!
I - Tower of coinあなたに時間 t 与える。時間 t 経過時に、縦に積みあがっているコインの数だけお小遣いをもらうことができます。
あなたは時間 1 ごとに、コインを 1 枚積み上げようと試みます。k 枚目のコインを積み上げるのに成功する確率は 1⁄k です。
成功するとタワーの枚数が 1 枚増え、失敗すると 0 枚に戻ってしまいます。
あなたは、タワーを積み上げる他に、「何もしない」という選択をすることもできます。
あなたは獲得できるお小遣いの期待値を最大化したいです。お小遣いの期待値を求めなさい。
図:縦に積み上げられたコインと、成功確率________________________________________
入力入力は以下の形式で標準入力から与えられる。
Tt1t2:
tT1.1 行目に、テストケース数を示す整数 T(1≦T≦50) が与えられる。
2.2 行目以降、T 行にわたって時間 ti(1≦ti≦10^11) を与える。
•ti は i 番目のテストケースにおいてあなたに与える時間を表す整数である。
________________________________________
出力最大化されたお小遣いの期待値をそれぞれ 1 行で出力せよ。
なお、出力の最後には改行をいれること。
________________________________________
入力例 11.5
2.7
3.3
4.94
5.1
6.1234
出力例 11.1.875
2.1.5
3.3.5808567386446
4.1
5.5.0803515513296
わかりましたか? すみません。僕は前回に引き続きわかりませんでした。
答えはこのページのどこかにあるかもしれないので、ぜひ探してみてくださいね。
彼らのすごさの片鱗を知る
ツアーの様子を通してわかってきたこと。
それは彼らが「何にでも本気だ」ということ。
以上はツアー後半で、コンテストを共同開催したIndeed社のオフィスを訪れた際のもの。卓球、ビリヤード、ピンボールなどを夢中で遊ぶ様子は、楽しそうながらも超真剣。日本各地から参加していた彼らの距離がグッと縮まった瞬間でした。
そして、「何にでも本気だ」ということがよくわかるエピソードを1つ。帰りの飛行機の機内エンタテインメントの内のパズルゲームで、ハイスコアを埋め尽くす遊びをしていました。日本勢でトップとなったKomakiさんに話を聞いた時も「僕は競い合うのが好き。競技プログラミングをしている人はそういう人が多いと思いますよ」と言っていました。
そんな彼らを世界がほっておくはずがなく、大きなプログラミングコンテストの上位から順に大手IT企業がヘッドハントしているという話もあるそう。
今回、彼らに帯同させてもらってすごく実感したことは、競技プログラミングはある種スポーツにも似ていて、そのトップレベルにいる彼らはもはや選りすぐりの「アスリート」であるということでした。
実際、今回のコンテストを企画したリクルートの方に話を聞いてみると「日本の若き学生エンジニアが世界でもトップクラスであるということを証明したかった」「そのために予選の門戸を広げ、多くの参加者をアメリカの本戦に連れて行った」とのこと。
前者については、結果がそれを証明しました。そして後者についても、予選の参加資格は「日本在住の学生(中、高、高専、専門、大学、大学院)および既卒3年以内の未就業者」という条件だけで、広く門戸を開けていました。その結果、予選参加者は164名、そのうち本戦へコマを進める資格を手に入れたのは44名。これだけの規模で海外へ人を送り込むコンテストは例を見ないとのこと。次回大会があるとすれば、今回惜しくも本戦へ進められなかった人のモチベーションはかなり高まっているはずで、それだけでも今回のコンテストには大いなる意義があったのではないでしょうか。
そして実は、そんなリクルートさんが現在エンジニアの積極採用をおこなっているそうですよ。詳しくはこちらをどうぞ。興味がある人はぜひのぞいてみてください。
(松葉信彦)