ようこそ、競プロの世界へ!~異世界転生~
@transien
第1話 ようこそ、競プロの世界へ!
『コンテスト終了です』
「なんだと……この俺が1完……?」
あまりの絶望感に俺は膝から地面に崩れ落ちた。
「や、奴は、どうなんだ……」
震える手で順位表をスクロールし奴の名前を探すと、そこに奴はいた。そう、順位表の一番上、そして……
「全……完……。これを解ききったのか、時間内に?」
ありえない。俺は天才なのだ。俺に解けない問題などあってはならないのだ。
「これがこの世界の現実だよ」
はっとして上を向くとそこには無表情の奴がいた。勝って嬉しいなどというそぶりは全くない、当然だとでも言いたげな顔で俺を見ている。
「ほら」
そういって差し伸べられた手を俺は睨みつけ跳ね除けた。
「次は、必ず勝ってやる」
「ほう、そうかい、君がこの僕に?」
「ああ、そうだ、この競技プログラミングでなぁ!」
その日、俺は思い知った。ずっと自分は天才で、この世に自分を上回る人間などいないのだとずっと思っていた。そんな甘い幻想は打ち砕かれた。だが俺はこんなところで終わらない。必ず奴に勝ってみせる……。
時を遡ること数時間。
俺は退屈な授業をいつも通りサボり、図書館で一人駄弁っていた。何が楽しくて、毎日こんな生活を送っているのだろう。校内模試は常に一位をキープ、特待生としてこの高校に迎えられた俺は授業をサボることも黙認されていた。教師達は俺が高得点を出すことにしか興味がない。逆に高得点さえ出していればなにも口出ししてくるやつはいなかった。ただ一人、あいつを除けば。
「またこんなところにいるんだ」
「なんだ、あんたか……。あんたこそ今は授業中だぞ、暇なのか?」
「今の時間は授業持ってないの、ていうか先生に向かってそんな口の利き方どうなの?」
「別にいいだろ、今更」
寝ぐせのついた髪、スラックスに入りきっていないシャツ、どこか抜けてそうな顔、とても先公には見えない。
「俺に構うなよ。ちゃんとテストで点は取ってる、問題ないだろ」
「そういうわけにはいかないよ、君は高校生、授業にはでないと」
「どうせ俺に勝てる奴なんていないんだ、意味なんてない」
先公は少し寂しそうな顔をすると俺の前に座った。
「あのね、君の知らない世界がこの世の中にはたくさんあるんだよ。確かに君は勉強が得意かもしれない。でもね、それだけじゃないんだよ。」
「ならぜひそういう世界をみてみたいもんだな」
そう言って俺は席を立つ。
「あ、ちょっと」
なにやら先公が後ろで言っているが無視して部屋を出る。
(俺の知らない世界か)
俺が生きる意味を見出せるようなものがそこにはあるのだろうか。そんな考えが頭に浮かんだもののすぐに打ち消した。
(まあ、どうでもいいか……)
そう、どうでもいい。そんなものはどうせ存在しないのだから。
放課後ようやく学校から解放される。授業には出なくていいとされているものの、学校にはいなければならない。俺はいつも通り一人で通学路をぼんやり歩く。なんとなく先公に言われたことが頭から離れない。
キィー――
(え?)
耳をつんざくようなブレーキ音で意識が現実に戻ってくる。だがすべてが遅かった。
次の瞬間天地がひっくり返っていた。何が何だかわからないまま、ただ、ああここで死ぬのだなと、それだけは理解できた。
(おい、おい、お前はこんなところで死ぬような奴じゃないだろ!)
薄れていく意識の中、遠くから先公のような声が聞こえる。
(お前に、もっと広い世界を見せてやりたいんだ!おい!)
そんな世界、見てみたかったな……。
最後にそんなことを思いながら俺は逝った。
「おーい、お前さん大丈夫か?」
「……あ?」
全身に青い服を身にまとい、さらには髪の毛までも青色のなにやらヤバい男が心配そうにこちらを見つめている。
「なんだかぼーっと突っ立ってるから、どうかしたのか?」
「え、いや、俺は確か……」
事故で死んだ……はずなのでは?
「ここはどこだ?」
「ん?どこって、お前さん変なこと言うな?ここは競プロの聖地、エットコーダーじゃないか」
「競プロ……?なんだそれは」
「お前さん、そんなことも知らずによくその年まで生きていたのぉ。競技プログラミングを知らないのか?」
競技プログラミング。名前からおおよそどんなことをするのか想像はつくものの、そんなものが常識だった覚えはない。
「まあ、お前さんどうやらまだ黒色みたいだし、まだ実戦経験はないようじゃしの」
「黒色?」
ふと俺は自分の全身を見回すと上から下まで黒色の服を着せられている。
「な、なんだこれは」
「なんだ、って……はぁ、この世界では競プロのレートで全てが決まる、服装でレートを表すという決まりじゃろが」
どこの世界の話だそれは。どうやら俺は危ない世界に入り込んでしまったらしい。とりあえず情報を手に入れるためにもう少し詳しく話を聞かせてもらうことにする。
「すまん、どうやら頭が混乱しているみたいで。この世界と競プロについてもう少し詳しく説明してくれないか」
「本当に大丈夫か?記憶がないのなら病院に行った方がいいんじゃ……」
「いや、いいんだ、少し混乱しているだけだから、頼む」
「まあそういうのなら……。じゃあとりあえずレートの話をするとするかのう。」
男の話をまとめると、どうやら黒、灰、茶、緑、水、青、黄、橙、赤色にレートに応じて振り分けられるらしい。そして黒は未経験、一回も実戦に参加したことをないことを示すのだと。
「じゃああんたは見た目からするに青レートってことか?」
「そういうことじゃのう。だから黒色のお前さんは、ワシをもっと尊敬すべきじゃな、わっはっは」
「御託はいい、競プロとはなんなんだ?」
「はぁ、全く……お前さん本当になにも知らんのだな。競プロ、つまり競技プログラミングとは決められた時間制限内に与えられた問題をいかに正確に素早くプログラムを組んでで解くかを競う競技じゃよ。お前さんまさかプログラミングもしたことないのか?」
「いや、プログラムは多少の経験はある。」
「ほう、じゃあやはりお前さんもアレに参加するためにここまでやってきたんじゃな」
「アレ、とはなんだ?」
待ってましたと言わんばかりにズイッっと顔を近づけるとやたらと興奮気味に男はしゃべりだす。
「エットコーダーグランドコンテストじゃよ!月に一度の競技プログラマーの聖典、このコンテストで己の実力を測り、結果によってレートが変動するのじゃ!わしはこの時を待ちわびていたのじゃ、ここでわしは黄色になる!」
「なるほど、このコンテストに参加することで俺にも色が付くわけだな?」
「そういうわけじゃ、だがこのコンテストは難しいぞい?お前さんにはちと早いかもな」
そう言われて引く俺ではない。競プロだのなにやら知らんが、このわけのわからない世界でも自らの力を示してみせる。
「いや、問題ない。そう、俺はこのコンテストに参加しに来たんだ」
「君にはまだ早いんじゃないかな、このコンテストは」
サッと振り向くとそこには全身虹色の服を着た男が立っていた。髪色まで虹色でもはや目が痛い。
「なんだお前は?」
「待て、お前さん……。あ、あなたは、まさか……」
「知っているのか、おっさんはこの男を」
「知っているもなにも……。さっきレートの話をしたな?さっきは赤色までしか話していなかったが、実はその上に虹色が存在するのじゃ……。今、この世界に虹色は5人しか存在しない、そしてこのお方はその中でもNo.1の実力を持つ、」
「チャ―リストだ、よろしく」
これが俺と奴の初めての出会いである。
それはさておき……。
「俺にこのコンテストが早いとはどういう意味だ?」
「そのままの意味だよ、黒色君。このコンテストはこの世界でも最高の難易度を誇る問題が出題される。実戦経験のない君では返り討ちにあって、そのまま意気消沈してしまうのがオチだ。この世界は奥が深い、ここで君の気持ちを折ってしまうことはないからね。大人しくビギナーコンテストから参加することをお勧めするよ」
「は、あいにく俺はその話に当て嵌まることはない、心配無用だ」
「無理に止めはしないけど……。無茶はしないようにね」
それだけ言うと奴はもう興味もないといった素振りで去っていった。
「お前さん、チャ―リストによくそんなタッパ切れるな……。わしゃ心臓止まるかと思ったぞい」
「そんなに凄いのか奴は?」
やれやれといった素振りで男は言った。
「コンテストに参加してみればわかる」
コンテストまでの時間にもう少し詳しい話を説明してもらった。このグランドコンテストでは制限時間2時間で6問の問題が出題されるらしい。いろはにほへの6問で、い問題が一番簡単、そこからだんだん難しくなるらしい。なにやら黒色ならば1問でも解ければ良い方と言われたが。
(俺はそんなところで止まる人間じゃない)
そうだ、元の世界で俺は常に一番をキープしていた。この世界でも同じだ。
(さあ、始まる……)
そうしてコンテストが始まった。
い問題
長さNの文字列が与えられます。この部分列であって、元の順番を保ったまま作った文字列のうち全ての文字が異なるものの個数を答えてください。
N<10^5
(ふ、これは簡単だな。すべての部分文字列を考え、そのうち全ての文字が異なるものをカウントすればいいだけだ。この程度、やはり俺ならば……)
プログラムは授業で少し触ったことがある程度だが、この程度ならば問題ない。10分程度でコードを組み終わり、提出する。
結果、TLE。
(TLEだと?!正解ならばACと表示されるはず!TLEは確か……タイムリミットオーバーか?!)
間違いなく正解だと確信して俺は目の前の現実が信じられなかった。
(何がダメなんだ……。いや、落ち着け、お前なら出来る……)
そう、落ち着いて考えてみればすべての部分文字列を考えるのでは計算量が多すぎる。
(そうだ、これは文字の種類ごとにカウントして、その組み合わせを考えれば……)
その後ケアレスミスでWA、つまり不正解を出しながらもついに。
AC。
(よし……。そう、こうだ、この程度なんてことはないんだ)
しかしそこで俺は絶望することになる。
(残り時間……1時間?え……?)
ここまでですでに一時間を使っている。残り一時間であと5問を解くことを考えると絶望的だった。
(いや、俺は最後まで出来る、出来なきゃいけないんだ)
気持ちを奮い立たせ次の問題に目を通す。
しかし。
(グラフって……なんだ……?)
その後はもう思い出したくもない。気が付けばコンテストは終了していたのだ。
コンテストが終了しチャ―リストとのやり取りを終えた後、俺の体に変化が訪れた。全身真っ黒だった服が灰色に変化していく。
「お、お前さんもこれで灰色レートに仲間入り出来たようじゃな。おめでとさん」
「あ、おっさん。あんたはどうやら黄色になれたみたいだな。」
「がっはっは、おかげさまでな!」
正直初めて会った時からこのおっさんのことは内心馬鹿にしていた。しかしコンテストが終わり、現実を知った今どれだけ自分が馬鹿だったかがわかる。
「悪い、正直俺あんたのこと馬鹿にしてた。本当はすごかったんだな」
「どうした、急に。ま、あれだけ意気込んでたらその分ショックもでかいじゃろうのぉ」
「俺、本気でこの世界で上を目指すよ。だからあんたもそのうち追い抜いて見せるからな」
「はっは、それはいいな、待ってるぞ!」
ずっと俺は自分の生きる意味を探していた。競プロが本当に俺の生きる意味になるかはまだわからない。しかし今はこの道を究めていきたいと、そう強く思った。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます