第56話
「うーん……」
桃が、部屋の中をぐるぐると歩き回っている。
「どうしたの?」
椅子に座ったまま、二海は声をかけた。
「何か……うまくいかない」
さすがに疲れたようすで、桃が答えた。何しろそろそろ十時だ。
「どんなところ?」
二海は桃のパソコンの横に椅子を持っていった。
「この……」
桃がエディタを示した。
「今やってるのがPPCで、品物のリストが渡されるのね」
「うん」
「で、その品物それぞれには、重さと価格があるの。品物Aは10グラムで200円、Bは20グラムで10円、みたいに」
「うん」
「品物はいくつも選んでいいんだけど、重さの合計が決められた値以上になっちゃいけないの。その中で、いちばん価格の合計が多いような組み合わせを選ぶ、っていうのなんだけど……」
二海は少し頭の中で考えてみた。高くても重すぎるとだめ、軽くても安すぎると条件を満たさない。
「けっこう難しそうな……」
「そのコード書いてるんだけど、何かうまく出ないでねー」
二海はコードを覗き込んだ。Pythonだ。変数がいくつも使われ、複雑な関数や『あとでなおすかも』というコメントがあちこちに散乱している。
「もしよかったら、これ説明してくれない?」
「いいけど……」
二海は、夏休みの活動でやっていた『共有』のことを思い出していた。話すと、自分の中で整理がつく。
「えっと、まずここで入力の値を取るでしょ」
「うん」
「で、組み合わせを入れておく配列を初期化する」
二海と桃は二人でコードを読んでいった。時々意図のとれない箇所があり、「ここはどういう意味?」とたずねると、桃は少し考えてから返答した。ときおり返事が途中であやふやになることがある。
「あー。確かに、この比較はいらないんだなあ。重さの合計がオーバーしたら、もっと上のところで終了させてるもんね」
「だね」
処理を書き換え、テストで動かし、うまく動かなかったところをもう一度書き直す。途中の変数の値を出力させて、どこから想定外の動作が始まったのか調べる。徐々に、コードが整ってきた。テストの入力を入れて手元で動かしてみると、ほしかった合計の組み合わせが出力された。
「おお!」
二人は目を輝かせた。桃が問題ページを表示し、コードを入力している間、二海は時計を見た。もう、十一時を過ぎている。次の問題は難しいかもしれない。
「結果返ってくるのに少し時間かかるよ」
桃は問題ページとは別タブで、ダッシュボードを表示した。KJCCを検索すると、百二十位のところだった。一位はすごい。もう全問解答している。
二海と桃は、結果待ちの間部屋の様子を眺めていた。KJCC、桐ケ谷女子CTFクラブの、活動の様子。
「順位……あんまり、上ではないね」
二海は言った。
「そうだね……うん。まあ、でも……」桃は椅子に深く腰掛けながら言った。「でも、私は、楽しかったな」
「よかった。私も」
二海が言うと、桃はふっと笑みをこぼした。
「ありがと」
「ううん。私こそ……」
「いや、今ここにいるのは、二海ちゃんのおかげだから」
そう言われると、二海は鼻の奥がつんとなった。しかし、
「あ」
問題ページがリロードされ、赤い字ででかでかと『Failed』と表示された。
「だめだった!」
「えー、どこ? どこが悪かった?」
「もう時間無いけど、これだけは終わらそう!」
「そうしよ!」
二人は、ばっとモニタにかぶりついた。セミの声がまたうるさく聞こえてきていたが、すぐにまったく気にならなくなった。
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます