
青春部活小説『アルゴリズムの乙女たち』試し読み
2024年3月8日に徳間文庫より刊行した『アルゴリズムの乙女たち』のお試し版を紹介いたします。本作は第二回次世代作家文芸賞の一般エンターテイメント小説部門・特別賞の受賞作を加筆・修正したものです。
大学生の愛奈・小百合・凉子を取り巻く《競技プログラミング》を題材とした長編小説で、彼女たちの出会い・強敵の出現・合宿・挫折・挑戦と青春もののエッセンスを凝縮した一作です。
表紙絵は連作短編小説『路を進めば』と同じくイラストレーター・デザイナーのおさかなゼリーさんに担当していただきました(本作が先)。3人のキャラや世界観を見事に表現していただいて、感謝の限りです。
以下、本作の冒頭部分のお試し版です。小説投稿サイトのNolaノベルでも公開しています(フォローしていただけると嬉しいです!)。
第一章 出会い
1
アルゴリズムというものに初めて触れたのは、昨年の秋だった。
問題を解くための手順。簡単に言えばそういうことです、と選択科目の《プログラミング基礎》の講義で担当教員が話していたのを思い出す。
二月中旬、学内はもうじき春休みに入る。天神大学の共通棟三階にあるコンピュータルームでは、壁一面の窓から白い光が差し込んでいた。わたしの他には数人ほどが席に着いていて、それぞれパソコンのキーボードを叩いたり、マウスをカチカチと操作したりしている。
提出期限が迫っている《プログラミング基礎》の演習課題は、与えられた問題を解くためのプログラムを組んで提出するというものだった。パソコンのキーボードの上で指を踊らせるたびに紡がれていく、半角英数字と記号たち。ハッシュマーク《#》に続けてメモを書き込むときは、全角文字も肩身が狭そうに顔をのぞかせる。二十二インチのディスプレイを左から右へ、上から下へ流れるように文字が駆け巡っていく。
for x in range(1, 101):
if x % 3 == 0 and x % 5 == 0: #xが3の倍数かつ5の倍数のとき
print("FizzBuzz")
elif x % 3 == 0: #xが3の倍数かつ5の倍数でないとき
print("Fizz")
elif x % 5 == 0: #xが5の倍数かつ3の倍数でないとき
print("Buzz")
else:
print(x)
1から100まで順に数えていって、その数字が3の倍数かつ5の倍数のときは"FizzBuzz"を、3の倍数の場合は"Fizz"を、そして5の倍数であれば"Buzz"を出力し、それ以外の場合はその数字を出力させる、という問題だった。
書き上げたプログラムを実行する。
1, 2, Fizz, 4, Buzz, Fizz, 7, 8, Fizz, Buzz, 11, Fizz, 13, 14, Fizz Buzz,……
想定どおりの出力結果だ。
最大公約数に着目すればプログラムをもう少し簡潔に書けるだろうなと思いつつ、すでに解けたプログラムをこれ以上コンパクトにすることにこだわりはなかったので、このままにしておく。
講義の内容は初歩的なもので、難易度も進度もさほど厳しいものではない。とはいえ、わたしは取り立ててプログラミングが得意というわけではないし、講義で扱うレベルを超えた内容を独学したいと思えるほどの楽しさは見出せていなかった。
――もっと数学的な問題だったら面白いんだろうけどな。
ため息が漏れる。
次の問題に取り掛かろうとしたとき、ポォンと小気味良い音が鳴った。学内メールの受信音。『ぜひ競プロ部へ!』という件名の新着メールが届いていた。
メールを開いてみると、何十行もの文章が目に飛び込んできて圧倒された。よくよく読んでみると、冒頭に『長谷部愛奈さんへ』という一言と、突然のメールを詫びる一文が書かれてある。それ以降はずっと、わたしに《競プロ部》という学内の部活動に入部してほしいという熱意のこもった文章が綴られてあった。メールの文末には『豊福小百合 TOYOFUKU Sayuri』と署名されている。その名前に見覚えがないし、それと思わしき人物にも心当たりがない。
この豊福という人は、なんでわたしのことを知っているのか。
きょうぷろ? というのは《競技プログラミング》の略称らしいが、プログラミングの競技とは一体なんなのか。
語感が似ているとはいえ競馬や競輪のようなギャンブルの類ではなさそうだな、と思いながら、メールを読み返すにつれて部活動という点に引っかかりを覚えていた。
中学校時代のあのときを境に、高校では部活を全くせず、大学に入ってからも部活やサークルの勧誘は全て断ってきた。わたしはもう、部活というものに関わりたくないのだ。
――やれやれ。
わたしは頭の後ろで結い上げた黒髪を一撫でする。
そして、少しばかりの心苦しさを覚えつつ、やんわりとした断りのメールを返した。
翌日、再びコンピュータルームに赴き、《プログラミング基礎》の演習課題の残りを仕上げた。各問題の解答プログラムを圧縮ファイルにまとめて、USBメモリーに保存する。そして学内メールを開き、講義の担当教員へ圧縮ファイルを提出した。
不意に、右隣のほうから視線を感じた。顔を振り向けると、先ほどまで誰もいなかったはずが、いつの間にかダークブラウンのロングヘアの女子が座っていた。彼女は、そのくっきりとした二重まぶたの両目をわたしのほうへ真っすぐ向けている。
「ん?」
思わず声が漏れた。わたしの左側は通路になっていて、その向こう側には誰もいない。整った顔立ちをした彼女は、わたしのことを見つめているに違いなかった。
「長谷部さんよね?」
彼女は笑みを浮かべながら訊ねてきた。
見覚えがないけれど、少なくとも部外者ではなさそうな雰囲気だ。
「そう、ですけど……?」
「敬語じゃなくていいわ、同学年だし。もう終わったの? それ」
そう言って、彼女はわたしの目の前にあるディスプレイを指さした。
「あ、うん」
わたしはキーボードとマウスから両手を離し、彼女のほうへ体ごと向き直った。彼女からは、どこか自信に満ちあふれた印象を受ける。学年だけでなくわたしの素性をいろいろと知られているような気がして、得体の知れない怖さを覚えずにはいられない。
「どちらさま……だっけ?」
「プログラミング、好き?」
わたしの質問には答えず、彼女は言葉を重ねてきた。
ひとまず、無難に答えておく。
「そだね……まあまあ、かな」
「そうなの? まあまあ好きっていうのは、講義で勉強するようなプログラミングは、っていう意味でしょう?」
見透かしたような彼女の言葉に、一瞬だけ返答に詰まる。
「それはまあ、そうかもね」
「やっぱり。ねえ、競プロには興味ないの?」
「きょうぷろ?」
彼女は話を続ける。
「そう、競プロ。競技プログラミングっていうんだけどね。オンライン上で定期的に開かれるコンテストで、アルゴリズムの知識とかプログラミングの技術を競い合うの。プレイヤーが世界中から同時に参加して、いくつか出題される数学的な問題とかパズル的な問題を制限時間内に解いていくのよ。それで、コンテストが終了した時点での得点の高さと正答時間の短さで順位を競うっていう感じね。そういうオンラインゲームみたいなもの。どう?」
彼女の話を聞く限りでは、純粋に面白そうだった。特に数学的、パズル的な問題、さらにはオンラインゲームみたいなもの、というところが興味深い。プログラミングはともかく、理学部応用数学科に所属しているから数学は好きだし、人並み以上に得意だという自負もある。
それに、パズルという点では論理パズルのような思考ゲームはもちろん、物理的に組み立てるジグソーパズルなんかも中学生の頃から大好きで、今でもずっと遊んでいる。少しずつピースを組み合わせていって、最後のピースを合わせた瞬間に味わえる達成感がたまらない。そんな感覚を競プロでも味わえるのだろうか、と少なからぬ興味を覚えた。
ふと、昨日のメールに書かれてあった名前を思い出す。
「そっか、豊福さん? だよね」
「そう、豊福小百合よ。メール見てくれたのよね」
「うん。その……競プロ部って、どんな部なの?」
「基本的には、さっき話したコンテストに出場して楽しむっていうのが主な活動ね。あとは、問題を解いて練習したり、アルゴリズムの勉強をしたり、かな。この間まで四年生の部員が二人いたんだけど、今は私ともう一人の二年生だけよ。その子も私が最近誘って入部してくれたばかりなの」
「そうなんだ。その、競プロ? のこと、まだあんまりよくわかってないんだけど、コンテストってチームで参加するの?」
「定期的に開かれるコンテストは個人戦ね。それ以外だと、年に一回開かれる大会もあって、そっちは団体戦よ」
団体戦、という言葉に引っかかる。競プロというものを自分一人で楽しむ分にはよさそうだし、始めてみればハマるかもしれないという気もする。でも、誰かと一緒に部活をする、というのはもうたくさんだ。それに、ゲームやジグソーパズルで遊んだり、動画サイトでゲーム実況を観たり、やりたいことは他にもいろいろある。
「せっかくだけど、わたしはいいかな」
「えっ?」
直接会えば入部してくれると思っていたのだろうか、彼女は意外そうに少しだけ目を見開いた。
わたしは首を横に振る。
「昨日もメールで返信したとおり、遠慮しとくよ。なんとなく面白そうだなって思うけど……部活っていうのは、ちょっと」
「ダメなの? 競プロ、興味あるんでしょう?」
彼女は身を乗り出して訊いてきた。
「まあ、興味なくはないけど」
わたしはUSBメモリーをパソコンから引き抜き、足元に置いてあったリュックにしまう。そして席を立った。
「ちょっと!」
「ごめんね」
彼女の引き留める声を振り切って、わたしはコンピュータルームをあとにした。
2
競プロ部への入部の誘いを断ってから数日後、必修科目の《集合・位相論》の講義を終えて、図書館に寄ってから食堂へ向かった。昼食には日替わり定食を選ぶ。図書館で借りてきた数学書を眺めながら、ご飯、味噌汁、サバの煮付けを箸で巡回する。
「べえやぁん!」
定食を食べ終えたところで、左斜め後ろのほうから、よく通る声が響いてきた。その声の主と思われる女子はわたしの真正面の席に来て、うどんの丼が載ったトレイをテーブルの上に置いた。彼女は肩にかけていたリュックを足元に置いて「よっス」と八重歯をのぞかせながらにこにこと笑いかけてきた。
彼女の姿を見やると、派手だな、と感じずにはいられなかった。頭のてっぺんから毛先に向かってブルー、パープル、ピンクと色が変わっていく、グラデーションカラーのミディアムヘアをしている。
しばらくわたしが何も反応しないでいると「あれっ?」と彼女は首を傾げた。
「ごめん、長谷部愛奈さんで合っとるよね?」
「そうだけど……?」
「なーんやビビった、人違いかと思ったやん。べえやん、競プロ部に入るんやろ? よろー」
そう言って彼女はおもむろに箸をつかみ、うどんを勢いよくすすった。いきなり《べえやん》呼びなんて初対面にしては馴れ馴れしい感じがするな、とは思ったけれど、不思議とそこまで嫌な印象は受けない。何かの講義で一緒になっただろうか、と思い出そうとしても記憶のピントが合わない。もし会ったことがあるのなら、こんなに目立つ女子を忘れるわけはないのだが。
「ちょっと、待って」
わたしの言葉に、彼女は箸を動かす手を止めた。
そしてわたしの目を見つめて首をひねる。
「どしたん?」
「あのさ、どこかで会ったっけ?」
「ううん、会うのは初めてやと思うよ」
「……あ、そっか、豊福さんが言ってた、競プロ部に入部した二年生ってあなたのこと?」
「そうそう、ついこないだお嬢に誘われてさ、競プロ部に入ったんよ。べえやんのことも、お嬢から聞いたっちゃね」
へへっ、と彼女は笑って、話を続けた。
「四年生が卒業やから、競プロ部はお嬢以外に部員が誰もおらんくなったらしいっちゃんね。そんでお嬢があたしんとこ来て、部が潰れるのはイヤやし、もっと部を強くさせたいけん入ってほしいって言われてさ。そこまで言ってくれるんやったら、あたしも入っちゃろうかいね、って」
「お嬢って、豊福さんのことでいいんだよね? あなたは――」
「あっ、あたし、井手上凉子。お嬢からはりょーちゃんって呼ばれとるばい」
「オッケー、わかった。りょーちゃんは、もともと競プロやってたの?」
「競プロはやったことなかったんやけど、あたしは情報工学科やけん、プログラミングは得意っちゃね」
凉子は再びうどんをすすった。
「べえやんは、プログラミングできると? あれ、そういや学科はどこやったっけ?」
「わたしは応用数学科。プログラミングは、講義でちょっと勉強したぐらいかな」
「あーね、べえやんは応用数学科なんや。なるほどねぇ、だからお嬢がべえやんのこと誘ったんかぁ」
うんうん、と凉子は首を縦に振って、コップの水を飲んだ。
「どういうこと?」
「お嬢が言いよったんやけどさ、競プロって数学の知識もバリバリ使うらしいっちゃね。あたしも始めたばっかやけん、まだようわからんのやけど。でも、ただ単にプログラミングができるだけやと強くなるのは難しいらしくて」
そして凉子は、にひひっ、と笑って続けた。
「お嬢、生まれ変わらせたいって言いよったし」
「生まれ変わ……何を? 競プロ部のこと?」
「せやね、たぶんそうやと思う。あたしも詳しいことはまだなんもわからんけど、四年生が在籍しとったときは、わりとテキトーな感じで活動しよったらしいっちゃんね。お嬢以外は」
「豊福さんは……お嬢は違ったの?」
「そうみたいやね。お嬢はガチで活動してきたっぽいけど、その分、四年生たちにはだいぶ不満が溜まっとったみたいやね」
小百合からの勧誘メールは、文面の端々から競プロへの意気込みが、とりわけ競プロ部への並々ならぬ情熱がにじみ出ていた。凉子の話を聞く限り、小百合は四年生たちが競プロ部からいなくなったタイミングで、活動を仕切り直そうと考えているのかもしれない。
「そうなんだ……でもさ、わたし、競プロ部に入ったわけじゃないんだよね」
「えっ、そうなん?」
「たしかにメールもらったり直接会ったりして誘われてはいるけど、入部するとは言ってないから。そもそも競プロって、まだよくわかってないし」
「もしかして、べえやんはまだ競プロやったことなかね?」
「うん、ない」
「なんやなんや、それをはよ言うてよ……おっけ、そしたらまずはコレやね!」
凉子は上着からスマートフォンを取り出して、何度か操作してからこちらへ画面を向けてきた。
「何これ、アルゴ……コード?」
「そうそう、《アルゴコード》。競プロのコンテストサイトの名前やね」
凉子のスマートフォンの画面に映し出されたサイトには、コンテストの開催状況や運営からのお知らせ、プレイヤーのランキング表などが掲載されていた。
「コンテストがさ、こんな感じでほぼ毎週土日に開かれてるんよね」
凉子が《コンテスト》のメニューを選択すると、これから開かれる予定のコンテストや開催終了したコンテストの一覧が表示された。直近で開催されたコンテストページへのリンクを開くと、コンテスト名、問題AからFまでの六問とそれぞれの配点、そしてコンテストの制限時間が記載されていた。
凉子は、続けて問題一覧のページを開いた。問題Aへのリンクを押すと、問題文が目に飛び込んできた。
『十四枚のカードがあります。それぞれのカードには、0から12の数字および星マークのうちいずれか一つが書かれてあり、重複はありません。全てのカードを裏返してから一枚取り出して表にしたとき、カードに書かれた数字が奇数であれば"Odd"を、偶数であれば"Even"を出力させてください。ただし、0の場合は"Zero"を、星マークの場合は"Star"を出力させてください』
問題設定としては単純だな、というのが第一印象だった。
(つづく)
おわりに
ここまで読んでいただいてありがとうございます。ご縁がありましたら、本作をお手に取っていただけると嬉しいです!
2024年12月には文学フリマ東京39にて連作短編小説『路を進めば』を出展しました。《進路》をテーマとした現代ドラマで、『アルゴリズムの乙女たち・アナザーストーリィ』も特別収録されています(以下、お試し版)。
『アルゴリズムの乙女たち』に登場するキャラクターたちのイラストが入った、おさかなゼリーさん特製《押し花風クリアしおり》が購入特典ですので、こちらもお求めいただけると幸いです💐


2025年3月現在、青春ラブコメ小説やモキュメンタリーホラー小説の制作を手がけています。Nolaノベルに連載予定ですので、公開の際はぜひお読みください!(noteやXでお知らせいたします)
今後とも、なにとぞご愛顧のほどよろしくお願いいたします!
いいなと思ったら応援しよう!
