1AC目
「野々原くんはコードは書けるんだが…そろそろそういうのは卒業してマネジメント面を身に着けてくれないかな?」
Japanese Traditional Big Companyに新卒で就職して10年になるが、評価面談で上司から言われることは最近いつもこんな感じである。ここは世界に名だたる日本の一流メーカー、株式会社KAISEIの情報通信部門がある横浜のオフィスである。ここで俺はいつものように半年に一回ある今期のボーナスを決めるための評価面談を受けている。
「プログラミングができるだけじゃ、派遣コーダー1人分の評価になってしまうんだよ。本社の社員は単価が高いからね、マネージャーとして10人以上のプロジェクトのマネジメントをやってもらわないと困る。それに、ちまちまコード書いてるよりも大規模なシステムの開発リーダーとして社会にインパクトのある仕事がしたいだろう?」
「(…いや別にそんなの微塵も興味がないのだが…)」
とはいえ院卒ですでに3X歳、社会性もある程度身につけている俺は常識的な返事をしてこの場をいつも取り繕っている。
「はい、できれば今後はマネジメント面を伸ばしていきたいと思っています。特に今やっている100人月規模のプロジェクトも開発リーダーとして納品まで遅延なくもっていき、『KAISEIファーストグレード プロジェクトマネージャー』を取得する予定です」
『KAISEIファーストグレード プロジェクトマネージャー』をというのは社内でしか通用しない、言ってみればクソ資格である。100歩譲ってプロジェクトマネージャーの資格ならIPAの情報処理試験でも受けさせとけよ、と思うのだがなぜか昇進するためには必要らしい。そもそも昇進してマネージャーになりたいかといわれるとNoでもあるのだが、まぁ給料はほしいというのはある。ただしKAISEIはJapanese Traditional Big Companyであるがゆえ、例えこの面談でとてもいい評価を得たとしてもボーナスが数万増える程度の話らしい。そんなの残業代で吹き飛ぶがな。
評価面談も無事(?)終わり、どうせ今期も5段階評価で3番目だろと心の中でつぶやきながら会議室を出て自分のデスクに戻った。自分の椅子に座った俺はお菓子でもつまんで休憩しようかと思ったのだが、そんな空気を読めないおっさんAが声をかけてきた。
「野々原、このチケット早く消化できないの?俺明日から有給なんで早くクローズしたいんだけど?」
といってRedmineのチケットをわざわざExcelにきれいに整形し、更にそれを印刷してクリップで冊子化した資料を俺の愛機MacBook Pro(ただし社内システムを使うためBootCamp)の上にドサッと置くこいつは実質的な開発リーダーのおっさんAである。そんな非効率的なやり方を常にしているためいつも忙しそうな感じで、よく俺の作業も急かしてくるのだ。あと別に本名がおっさんAというわけではなく、俺が単純に名前を覚えていないだけなのだが。
「すみません、18時までには修正しておきます。」
「いや定時だと俺が承認する時間がないでしょ?君の分のチケット23個もあるんだよ?」
「…わかりました、ちょっと遅れるかもしれませんが17時までには。」
そもそも他のやつが開発を放棄した分も俺がコード書いてるからチケットが多いだけなんだが、そんなことは微塵も顔に出さずに返事する。
「(実は俺ってコミュ力があるんじゃないだろうか?…いやそれはないな。そもそも俺に本当にコミュ力があったらこんなプログラマーやってないでおっさんAみたいにマネジメントの仕事してるはずだしな)」
本来は俺とおっさんAが別々の機能の開発リーダーをやっている予定だったのだが、コミュ力マネジメント力が皆無の俺はほとんどの管理業務をこのおっさんAに押し付けていた。まぁそういう意味では感謝しているのだがなにぶんこのおっさんAは設計や開発に対する見識がまったくない。通常、KAISEI本社の社員は開発のいわゆる「上流工程」を期待されるためお客さんから要件を聞きそれを設計してプログラミング専門の会社に開発依頼、いわゆる「外注」を出す。しかしこのおっさんAの設計は客との会議の議事録に表紙を付けた以上の何物でもなく、しょうがないので俺が全部設計をしたのである。ただ外注先も外注先で、昨今の人手不足の影響かまともにコードが書けるプログラマーがほとんどいないという状況で、出てきたコードがビルドは愚かコンパイルすら通らないというひどいありさまであった。そこでこのプロジェクトではプログラミングもほぼ俺がやってしまった、という状況なのだが…
「(やっぱ、まずいよなぁ…一応10人もプログラマー雇ってるんだし、分担して作業しないと今後俺のタスクが溢れてしまうの目に見えてるしな…)」
10数年前、東大大学院の情報系のM1だった俺は「まぁ東大だし別に就活とか適当でもなんとかなるだろ…」ぐらいに考えており、適当にやった結果就職戦線を全滅した。焦った俺はドクターへの進学も考えたもののその踏ん切りもつかず、結局よくある有名メーカーの推薦という枠を使って10月頃に今のKAISEIの情報通信部門の内定を取れた。しかしメーカーのIT部門とは、ITとは名ばかりで要はお客さんの言うことを聞いてエクセルとにらめっこする、というのが主業務であり自分が一番得意なはずの「コードを書く」という作業は最も下に見られるというのが実体であった。「コードを書く」という作業ができるのはどっちかというとその外注先なのだが、
「(でもまあ、外注先の平均年収って300万未満とか書いてあったし、それじゃやっぱ就職の選択肢には入らなかったよなぁ…。というか今どきそれじゃまともなプログラマ集まらないよな…)」
俺はふと入社当時のことを思い出していた。当時のKAISEIは、IE6専用の社内システム、エクセル方眼紙のオンパレード、承認は印鑑でしかも斜めに押すの推奨、支給されるPCはメモリ4GBのWindows XP(当時はすでにWindows 7ですら出て数年は経っていたというのに)、といういわゆるJapanese Traditional Big Companyであった。年収はまあ夏と冬のビッグサイトで開かれる某イベントで散財できるぐらいにはもらえたのだが、やはり入社直後で活気に溢れていた俺はそんな状況を打破すべく、Excel方眼紙の撤廃のためにワークフローの整備、開発用PCの自由化のためになどを主張して交渉し今のMacBook Proを入手するなど多少は頑張ったのである。
「(でも、結局IEないと社内システムなんも使えないからBootCampだし、ワークフローもいつの間にかExcel方眼紙をアップロードするだけのツールに成り下がっていたな…)」
なんか昔のことを思い出してだんだん鬱になってきた俺は、今対応中の3番目のチケットに「チケットIDを素因数分解したら2*2*263だったことまで判明したので後は明日やります。」という意味不明な進捗コメントを記載した後、17時時点でチケット23個のうち2個しか消化できていない現実を報告しようとおっさんAの席を見た。すると、Celeronにメモリ4GBと噂されるおっさんAのPCはすでに電源が落ちていた。ん?と思っておっさんAの近くに座るロリっ子に聞いてみた。
「はぁ?あいつ?なんか明日から連休で飲み会だーとかいってフレックスでもう帰ったけど?」
「え、まじですか、なんか今日中にチケット全部承認するとかいってたんだけど、おかしいな…俺も帰るか…」
「そうだ、今日の21時から社内花火大会あるんだけどあんた出席すんの…?って今日の夜はなんか忙しいんだっけか?競プロのコンテストがあるとかで」
「あーうん、ごめんね、今日もコンテストあるからちょっと無理そうだわ。ありがとう綾瀬さん」
「しゃーねーな。私も行くには行くけど、ノートPC持参で現地でお仕事だし。」
このロリっ子は綾瀬さんといい、俺とは別のプロジェクトでプロマネをやっている後輩である。ただこの後輩、先輩にタメ口がデフォなだけでなく、一旦プロジェクトに遅延が発生しようものなら客でも構わず机を蹴り飛ばすなどすごい噂もあるらしい。一回その姿を見てみたいが仕事では一回も一緒になったことはないのでよくわからない。ただ俺が心の中でロリっ子と呼んでる事がバレたら同じ目に合いそうではあるが。
綾瀬さんとの関係はどちらかというと、以前夏のビッグサイトの某大規模同人誌即売会で偶然会った時のほうがよっぽど大きい。当時俺は「オレオレデータ構造ハンドブック」とかいう誰が買うんだかわからないような謎本を頒布していた。こんなもん売れないだろ…と半ば自虐モードになっていたところ、なぜかぐるぐるメガネの謎の美少女が一気に全在庫を買いしめていったため正午ぐらいに帰ろうとしていた。そのとき通りがかった壁サーになぜか綾瀬さんがいて声をかけたのである。
「おい、野々原、お前こんなところ何やってんの?ちょっと見せてみろ」
といわれて交換した本はオフセット印刷で 50p 1000円という大作だった。というか単なる売り子かと思ったらサークル主だったのかよ…という驚きとともに、巻末の Twitterアカウントをその場でスマホから覗いてみるとフォロワー298339人とか出て二度びっくりした。ただまぁあの容姿なら有名になるのもわかるかなという気もするけどね。職場で綾瀬さんから競プロ(競技プログラミングの略)という単語が出てくるのは多分このとき交換した本を読んでくれたんだろうか、とも思ったが、弱小個人サークルの本とか普通に押入れに積み上がってそうだな、と考え直したのだった。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「さて飯も食ったし、今日のコンテストまでに過去問でも埋めてるか。」
妹に用意してもらった夕食の余韻に浸りつつ自室でMacBook Proを開いた。もちろん私物PCはBootCampなんて不埒なことはしていない。そんなことをしたらジョブズ様に怒られるしな。別にApple信者ではないけど。
「お兄ちゃん、集中できるように鍵閉めとくね!(ガチャリ)」
妹はよくわからないけどプログラミングコンテスト前に俺の部屋の鍵をよく閉める。妹なりの配慮なんだろうか?それはさておき今日のプログラミングコンテストは NyatCoder というサイトのコンテストである。その中でも「NyatCoder Grand Contest」という最もレベルの高いコンテストだ。以前まで NyatCoderのコンテストは週1、しかも土日にしか開催されていなかったのだが、妹が「コンテスト回数が少なすぎる!」とコンテストサイトの社長に直談判した結果平日にもたまに開催されるようになったらしい。何者だよ妹。
「別に平日のコンテストならLoadForcesだけでもお腹いっぱいなんだけどな…」
LoadForces というのはまた別のプログラミングコンテストサイトで、こっちはロシアかどっかで運営されているらしい。海外サイトに関わらず結構有名なところなので日本人でも出ている人が多いのだが、サイトが若干不安定でページ更新時に「Now Loading...」で止まってしまうことが多いから LoadForces という名前になったとかなんとか。こんな感じでプログラミングコンテストが毎日開催されているせいで平日でも深夜2時ぐらいまで起きていることが多くなり、仕事中居眠りすることが多くなってしまった。別に仕事を真面目にやる気はないからいいんだけど。
過去問を埋めようとしていたのだが、そもそも考察で詰まってしまいキーボードをほとんど叩くことなくコンテスト時間になってしまったため、とりあえずCLionといわれるC++のコーディング環境を立ち上げコンテストに備える。今日は「500 700 800 900 1200 1500」の配点らしい。
「NyatCoder Grand Contet 2999 is now opening (Go to the task list page)」
「えっととりあえず『A: Revenge of Bubbbbbbbbbbbbbbbbble sort』は…まぁ500点だし普通にDPか…?あーいやO(1)で立式できそうだな。」
とりあえず順調にAをAC…したつもりが最後WA。なんてこった。
「AからWAとか縁起悪いな…あー添字ミスってるな。こういうところがレッドコーダーとかとの差なんだよな」
レッドコーダーとは競技プログラミングにおけるほぼ最上位の称号である。実はその上に金冠だのTargetだのLegendaryだのあるんだが、事実上その称号は世界で一人にしか与えられていない。史上最強の競プロer、touristen氏である。
「ていうか金冠とか銀冠減ったよな…昔あんなにいたのに、みんな就職したのか全然コンテストで見かけなくなったな…おっといけない集中集中。次は『B: Revenge of Xor Sum』って今回の問題全部 Revenge ついてるじゃん。どんだけ復讐好きなんだよ…」
と一人ツッコミを入れつつノートに考察を走らせる。入力が10万桁とかなので多分桁DPだと思うのだが状態がまとまらない。うーんうーんと唸っていると外からどーんどーんと花火のような音が聞こえ始めた。そういやそんな季節か…と思いながらヘッドホンを装着し音楽を流して集中に戻る。
「お兄ちゃん、ちょっとあの非常識な花火大会を止めてくるね!じゃ!(バタン!)」
妹が花火大会を止めに出ていったらしい。いや常識的に考えて無理だろ。まぁコンテスト終わったら迎えにいってやるか。
「というか競プロの邪魔になるようなものにはめちゃくちゃ厳しいからなあいつ…。この前も俺が綾瀬さんから勉強会誘われたって聞いたら『そんな暇あるなら精進でしょ!ちょっとはっきりいってくる!』とかいって包丁持って綾瀬さんの家に行こうとしたしな。っと、Bも3WA出してしまったな…あと5分しかないし今日のコンテストは捨てゲーかな…1500でも見てみるか。『F: Revenge of Ossan A』か…おっさんA?」
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
問題文
『おっさんAはN枚のチケットを承認する必要があり、プログラマーNにその
チケットを消化させると、それぞれa[i]の時間をかけて処理できる。現状に
不満を抱きつつも特に行動を起こすまでもなく怠惰に日常を過ごしている
プログラマーNがそのチケットの消化にかかる時間を答えてください。
ただしこの日常を変えたい場合は-1を出力してください。』
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「はぁ?何だこの問題、エイプリルフールコンの問題を間違ってだしてないか?Clarになんかでてるかな…ってあれ?開かないな。安定性に定評のある NyatCoder にはめずらしいな。順位表は、と」
~~~~~~~~~~~
1. touristen 5600
2. ahillllosstww 5600
3. ei67x199 2900
...
380. Nono(俺) 1200
~~~~~~~~~~~
「げ、全完してるやついるのか…まあさすがtouristenだな。2位は最近良く見る名前だな。読みにくい名前つけるのやめてくれ。ていうかあの問題流石にミスじゃないのか?なんでACできるんだ?」
とりあえず意味はわからなかったが、そもそも問題が壊れてるんじゃないかと思いText(cat)で-1とだけ書いたものを提出してみた。
「壊れてなきゃ-1のテストケースでACが出るはずだが、どうなんだ…?」
WJ...
・
・
・
・
・
・
AC
「は?AC?ていうかこれテストケース一つしかないじゃん。なんだこのクソ問。え、ていうか1500通したとか順位やばいことになってない?」
~~~~~~~~~~~
1. touristen 5600
2. ahillllosstww 5600
3. ei67x199 2900
4. Nono(俺) 2700
...
~~~~~~~~~~~
「まじかよ、赤パフォどころかこれ金パフォでGP30圏内じゃん…ってあのクソ問 -1 提出すればいいことに気づいた人3人しかいないのかよ。超ボーナス回じゃん…」
直後、コンテストが終了し一気に疲れが出てきた俺はヘッドホンを外した。今まで聞こえなかった外の花火の音がやたらうるさく聞こえる。ていうか外が昼間みたいに明るいし。
「Editorialは…うわ文字化けしてるな。なんか以前もpdfにフォントが入ってなくて見られないことあったっけ…まぁ一応解説放送つけるか」
といいつつYoutubeのブックマークを開くが何も反応しない。あれ、おかしいなと思ってTwitterやGoogle検索を開いてみたところそっちも全くつながらない。
「なんだ…?ルータ壊れたか?ていうかなんだこの明るさ、花火ってレベルじゃねーぞ…」
その時外から走ってくる人の音がして、玄関のドアが勢いよく開いた。どうやら妹が帰ってきたようだ。俺は施錠されたドア越しにでも聞こえるように大声で話しかけた。
「おかえりー。なんか花火大会止まるどころかめっちゃ大きくなってるな。」
「お兄ちゃん!!!そんなことはいいからにげ」
そこまで聞こえた瞬間、外が一際光ったかと思うと、俺の部屋が大爆発し、俺の体もひどいことになっていた。
「なんで俺の部屋で赤青緑の火花が散ってんだよ…花火かこれ…しかも半壊したドアの向こうに血まみれで包丁持ってる妹いるし…危ないから早く…逃げ…てくれ…」
俺の意識はそこまでだった。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「あれ…なんだここ…ていうかさっきの光は…花火?だよな?俺死んだ?まじかよ…妹無事かな…まああいつは殺しても死なないというか死神を包丁で刺しそうなやつだから心配はしていないが…というかそもそもここはどこだ?」
気づくと俺は何もない空間に浮かんでいた。キーキー音っぽいものが聞こえるけど雑音が多すぎてよくわからない。
「死後の世界ってやつかな…ていうか俺の愛機のHDDも一緒に吹っ飛んでくれてるかな…妹に中身見られたら遺骨に包丁突き立てられそうだしな…」
とどうでもいい心配をしながら小一時間ふわふわ浮かんでいたのだがいい加減キーキー音っぽいものが耳障りになってきた。
「おーいちょっと誰かいますかー?俺無宗教だったから神様とかいないのかな?でも実家は寺で葬式してたような…ていうかこのシステム音っぽいの、せめてこれだけでも何言ってるのか知りたいんですけど…」
と考えた瞬間頭が急にクリアになって脳細胞の一つ一つが活性化するのを感じた。そして俺の脳が自動的にコードを紡ぎ出す。
「は?なんだこれ…ていうかなんで俺脳内プログラミングしてんの。え、まって、脳内でユニットテストまで完結してるし、え、なんか聞こえてくるデータがこのコードでデコードされて、お、おい、なんだこれちょっとまてよ」
その瞬間システム音の意味がはっきり聞こえるようになった。いや実際には聞いた音が俺の脳内で書いたコードで変換されて情報として伝わってるだけ、なのだがなぜか普通に聞こえるのと同じような感覚だ。俺は一体どうなってしまったんだ…
「エプテルよ。この男は手違いで死んでしまったのだ。このぐらいの特典付きで転生させるしか本人は納得すまい。」
「ツーリステンよ。そんなこと隠していればよかろう。どうせこの男にはこの会話は聞こえていないのじゃし。」
「…あの、さっきから何をいっているんですか?ていうかあなた達はどこにいるんですか?」
「「は????」」
人の声が聞こえたので、呼びかけたら「「は?」」とか言われたんだが。二人だろうか。でも一体どこにいるんだ、と思った瞬間、さっきと同じような現象が起き今度は視界がクリアになった。というか目の前に二人の老人が現れた。
「いや転生とか特典とか、何を言ってるんだろうと」
「お、お主、わしらが見えるのか…?」
「えっと、なんかどこにいるんだろう?って考えたら見えるようになりました」
「そんなバカな…この空間で我々を認識するには金冠以上の情報処理能力が必要なはず…」
「情報処理能力…?そういえばなんかここに来てからやたら頭が冴えてて脳内プログラミングが余裕でできちゃうんですよね。愛機のMacBook Proがなくて寂しかったけど、脳内ACがはかどりそうなのでしばらくはなくても我慢できるかな。」
「…まさかお主、Nonoか?」
「えっ、NyatCoderのハンドルネームのことですか?そうですけど、ていうかなんで知ってるんですか?」
こいつらは一体何をいっているんだろう。俺が競プロ好きなのは天界まで届いていたのだろうか。といってもレッドコーダーみたいな天上人なわけでもなくて趣味勢だったのだが…
「エプテルよ。貴様今日の1500問題に妙な仕掛けをしておったな。確か通すと人知を超えたIQが手に入ると…」
「ツーリステンよ。確かにそういう仕掛けはしたがあれは人間ごときには通せぬ問題だ。現在の人類最強 ei67x199 もこのFは手も足もでなかったぞ。」
「エプテルよ。ではこの2位を説明せよ。ahillllosstww は人間ではないのか。」
「ツーリステンよ。そやつはジャッジサーバーをハッキングしてテストケースを入れ替えたやつぞ。コンテスト終了後にBANさせたから圏外じゃ。そのためわしの仕掛けは作動せん。」
「エプテルよ。ではこの3位を説明せよ。今ここにいるNonoについて。」
「ツーリステンよ。そやつは3位とはいえ2700点、700 800 1200 あたりを通したのじゃろう。」
「エプテルよ。こやつは500 700 1500を通しているのじゃ。」
「…まじで?」
「…まじじゃ。」
「BANするのわすれとった!!!」
何をいってるんだろう、この人達は。というか本当に誰なんだよ。
「あの…盛り上がってるところ悪いんですが、俺の質問に答えてくれませんか?」
「な、なんじゃ?」
「ここはどこで、あなた達は誰で、俺はどうなってしまったんですか?」
「…う、うむ。ここはお主の想像する通り、天界じゃ。そしてわしはツーリステンという。お主もtouristenというハンドルネームを順位表で一回ぐらい見たことないかの?」
「え…あのtouristen!?ていうか、あなた達人間じゃないですよね…?」
「うむ、まぁなんかもう隠しても無駄そうなのですべてを話そう。」
説明を聞いても3割ぐらいしかわからなかったのだが、多分こんな感じらしい。実はこの世は超巨大な1個の古典コンピュータとの量子コンピューターの組み合わせでできているらしい。そして理に関することは古典コンピュータで、運に関することは量子コンピュータで計算され、その結果が反映されているだけなのだそうだ。そのためこの世を司る二人の神はそれぞれ古典コンピュータのプロと量子コンピュータのプロらしい。そのうちコンテストでよく見るtouristenことツーリステン神は古典コンピュータのプロらしく、エプテルは量子コンピュータのプロらしい。だが、ある時エプテルは古典コンピュータのアルゴリズムにも興味を持ったらしく地球に競技プログラミングなるものを広めて自分も参加することで楽しんでいるんだとか。そんな壮大な話だったのか…
「で、俺はどうなったんですか?」
「お主は死んてしまったのだが、実はこれは量子コンピュータにバグがあって」
「ツーリステンよ。バグではない。不確定性原理による避けようのない現象だ。」
「まぁ要するに量子コンピュータの特性上、O(10^10000)に1回どうしても起きるバグみたいなもんが」
「ツーリステンよ。何度も言わすな。」
「…こほん、O(10^10000)に1回どうしても起きる避けられない現象のため、お主は誤って死んでしまったのだ。」
「…はぁ。つまりバグで俺死んじゃったんですか。まあ別にいいけど。」
「…なんか随分あっさりしてるの。で、こういうときのためのディザスタリカバリももちろん用意してあるというわけじゃ」
「…災害級なんすか、俺?」
「単に言い方の問題じゃ。で、そういう場合は特典を与えて転生させるということになっておる。本来ならお主に好きな能力一つを与えて、人材が不足している世界に転生させるという話になるのじゃがお主の場合エプテルの仕掛けのせいですでに能力が付与されてしまったようじゃ」
「能力ってこのなんかやたら脳内でコードが書ける能力ですか?」
「それじゃ。お主の今のコードを書く能力はレートにして998244353まで上昇しておる」
「いやそれよくあるmodじゃん…」
思わず突っ込んでしまった。
「…すまん、まぁ正しい数値は測定してみんとわからんがそのぐらい上昇しているということじゃ。例えば、ほれ、この問題を見てみなさい。」
「んーどれどれ…うげー確率の問題かよ…しかもeが出てくるとかとかなんなん…ってあれ、漸化式なんとなくわかったな。あと適当にDPすりゃ…うん、コードも(脳内だけど)書けたわ」
「それは2700点を超える問題じゃ」
「…は?2700点?」
「そうじゃ、その程度の問題ならお主は3分もあればACできる。そのうち2分30秒はタイピングゲームじゃ。」
「…すごいな。」
といってもあんまり実感はない。なんかA問題みたいにまぁ見りゃわかるでしょぐらいの感覚でコードが浮かんでしまった。
「というわけで好きな能力ではなくなったので、好きな世界に転生させてやろう。どこがよいか?」
「まぁ俺は別にこの能力でも不満はないが…まあそうだな、この能力が活かせる世界がいいな。」
「わかった。それではお主をてんs」
その瞬間意識が途切れた。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
「お兄ちゃん!精進の時間だよ!起きて!」
「…ふぁ?妹か?…ってなんで俺手錠されてるの?」
目を覚ますと何故か俺は椅子に手錠をはめられ座っていた。
「お兄ちゃんが勉強さぼらないように椅子に縛り付けたんだよ!そしたら今度は寝ちゃってるし…お兄ちゃんが動かなくなったら吹き矢が飛んでくるからくりが必要かな…」
「それはまじで死ぬのでやめてくれ…ていうかからくりってなんだよ。お前いつも監視カメラに動体検知のディープラーニングモデルかなんか組み合わせて俺をみはってなかったっけ?」
「どうたいけんち?でぃーぷらーにんぐ?お兄ちゃん難しいこといってまた勉強サボろうとしてるの?」
妹はもともと機械学習系のトップカンファレンスのオーラル常連だったはずだが、この反応はなんだ?まあそれも俺を監視するために画像認識勉強してたらいつの間にか専門家になっていたというとても不純な動機だったらしいのだが…まあそれは置いといて、そもそも俺の部屋がやたら変わってるな…なんかファンタジー世界の建物みたいだ。というか俺はファンタジー世界にいるのか。多分これが転生先の異世界というやつなのだろう。じゃあこの妹のように見える生物も実はもちょっと変わってるのか?
「国家試験の勉強終わったらご飯用意してあるから、早く終わらせてね!(ガシャン)」
…まあ腹も減ったしその国家試験の勉強とやらを終わらせるか。というか一体何の国家試験なんだ、というかそんなもの勉強してるとか俺は一体何歳なんだ…。しかしこの世界にもパソコンっぽいものあるんだな。どうやって起動するんだ…?なぜかハンドルみたいなのが付いてるが…
「おっ、起動したな。まぁでもGUIはなしか。問題文も紙なんだな…紙というか和紙かこれ。和紙に…競プロの問題かこれ?」
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
問題文
『高橋くんはまんじゅうを一日一回2倍に増やせる能力を持っている。N日後に
高橋くんが持っているまんじゅうの数を答えよ。ただし答えが非常に大きくなる
可能性があるので、1e9+7 で割ったあまりを答えよ。』
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
まあ普通に繰り返し二乗法でいいんだよな?とりあえず適当にコード書いて、うん、まあACだよな。
「おーい、ACできたぞー。ご飯食べたいからここ開けてくれー」
…おい妹よ、いつも俺のそばでストーカーしてるんじゃなかったのか。おなか空いたので早めに出してほしいのだが…んっ、来たかな?
「(バタン!)おおおお兄ちゃん、一体なにやったの!?村中が大騒ぎだよ!?」
「お腹すいたから早くご飯を…って、えっ?」
「例の課題、Nが2^60超えのケースも解を出してなかった!?」
「そりゃお前、別にNは2^60どころか10^100000でも普通にできるだろ?」
「10^100000!?よ、よくわかんないけどちょっと一緒に来て!」
妹に手を引っ張られて俺は家の外に出た。うわなんだこれ、完全に中世の雰囲気があるファンタジー世界だな…その割にハイテクっぽいものがいっぱいあるが。まぁうちにも手回しPCとかあったしな。あれやっぱハンドルで発電してるのかな?そんな電力で発電できるとか実は元の世界よりも技術力進んでるんじゃね?
「お兄ちゃん!これ見て!」
妹よ、首筋に包丁を突き立てて急かすのはやめてくれ。心臓に悪い。
「お兄ちゃんはこの世を統べる23の大魔法のうち、第3魔法『1052 ダブリング』をアンロックしちゃったの!これがどういう意味かわかるでしょ!?」
「…いや全然。そもそも3番目なのに1052って」
「…お兄ちゃん歴史の授業全部寝てたもんね。しょうがないなぁ。私が1から説明するね。」
つまりこういうことらしい。この世は天地創造の後、神々から23の大魔法と神託機械「オラクル」を与えられ、人類はその大魔法を「オラクル」上でプログラミングを行い大魔法をアンロックすることで文明を開花させてきたらしい。「オラクル」は提出されたコードに対してテストケースを実行し、正しい解ならば「AC」、間違った解なら「WA」や「TLE」といった判定を下し、すべてのテストケースに「AC」すると大魔法がアンロックされるらしい。
伝説によると今から1万年ほど前、人類は数千年かけてようやく第1魔法「1023 ハローワールド」のアンロックに成功したとのこと。第1魔法「1023 ハローワールド」がアンロックされると、魔法の効果で人々に「文字」が与えられ、一部の賢者しか使えなかった「オラクル」が普通の人でも使えるようになったとのこと。今では各ご家庭にあるあの手回しパソコンはオラクルに接続された端末とのことで、つまりCPUは入ってないのか。よくわからんが…
そして時は過ぎ今から約150年前、第2魔法「1034 アルジェブラ」のアンロックに成功した。第2魔法「1034 アルジェブラ」がアンロックされるとこの国のシンボル「フジヤマ」の麓の地獄穴からコイン状の金属片が大量に湧き出し、貨幣経済の概念がもたらされたらしい。ちなみに聞くところによると景気が加熱しすぎたときは地獄穴にコインを奉納しないとフジヤマの噴火を引き起こすため税金の取り立てが厳しくなり、逆に不景気になると地獄穴からコインがじゃんじゃん湧き出すのだとか。日本銀行かよ。とまあこういう感じで大魔法は世界に大きな影響を与えるために国家事業としてアンロックに取り組んでいるらしい。
で、俺はこの国家事業に携わる、いわば公務員になるべく試験勉強をしていたのだとか。公務員になるためには例の問題を2^20程度まで解けることが必要らしいが…
「国家事業って…普通に競プロの練習してればN=2^60程度でも誰か計算できてるだろ?」
「最新の報告じゃまだ2^59回目の計算が終わったところだよ!そんなところでお兄ちゃんが2^60をこえる解を出して、しかもオラクルがACっていってるもんだから村中大騒ぎだよ!一体何をやったの!?」
騒いでいると近所の人と思われる人が続々と集まってきた。なんだなんだ?
「お前か、国家プロジェクトより先に第3魔法のアンロックに成功したというのは…」
「『オラクル』には大賢者しか知らない『アセンブラ』という秘密の命令があるらしい。それを使えば相当高速化されるとも聞いた。こいつはその秘密を盗んだのでは?」
「『オラクル』は無料枠が小さい…国家事業では数万人の人柱により並列演算することで数百倍の高速化を図っているはず…ま、まさかお前は誰か誘拐して『オラクル』に人柱を捧げまくったのか!?」
なんか村人の目が怖い。というか人柱ってなんだよ。
「何って…単に繰り返し二乗法しただけだが?」
「く、くりかえしにじょうほう…だと…?」
「うん、ほら2進で表して、上からビットごとに見ていってビットが立ったらかけて…」
俺が和紙に丁寧に書いて説明すると村人の顔色がどんどん青ざめていく。いや確かに競プロ知識だけどそこまで驚かなくても…
「あ、悪魔の所業じゃぁあああああ!!」
「ありえない、ありえない、ありえない、ありえない、ありえない、ありえない…」
「おい、お役人様を呼べ!早く!」
「『オラクル』にACが出たんだ、もう向かってるさ!!!」
ん?なんか雰囲気怪しくない?こういう時王様から賞金が出たりするんじゃないの?
「…お、お兄ちゃん逃げるよ!!!」
「え、ええええーーー!?」
というわけで俺たちは住み慣れた(俺はまだ数時間しか記憶は無いのだが)村から逃げ出したのだった。