11. これが人生初ACですか?
「WA」、つまりは「Wrong Answer」、私の提出したプログラムは間違っていたということだ。なぜ? 何が間違っているというのだ? この問題は割り算をすればいいだけではなかったのか?
「残り時間10分です」
枝刈先輩がそう告げる。
私は驚く。いつの間にか20分も時間が経過していた。残り10分。目の前が真っ暗になる感覚に襲われる。絶望だ。このまま一問も解けずに終わってしまうのか。そうしたら競プロ部は廃部だ。私のせいで。
私は対戦相手であるパソコン部部長春崎先輩の方を見る。春崎先輩は余裕の表情でパソコンに向かっている。その手は全く動いていない。もうすでに問題が解けたということか。
次に競プロ部メンバーの方を振り返る。早希と玲奈は始まる前と同じようにサムズアップで応援してくれる。その心遣いが今は悲しい。ごめん、私のせいで競プロ部は廃部になってしまうよ。こんなことならもっと勉強しておけば良かった。もっと競プロに時間を費やしておけば良かった。
「諦めるの?」
私は心の中でそう呟く。
「まだ時間はあるのに諦めるの?」
もう一度呟く。
そうだ、まだバトルは終わっていない。まだ時間はある。一問だけでも問題を解けば春崎先輩に追いつけるかもしれない。というか春崎先輩は本当に問題を解けているのだろうか。さっきからずっと手が止まっている。もしかしてまだ解けていないのではないか。あの余裕そうな表情もブラフの可能性があるのではないか。だってサイコパスだし。
私は再び問題に向き直る。もう一度考え直すのだ。
◇◇◇◇◇◇
太郎君はNページある本を毎日Kページずつ読むことができます。何日で読み終わるか求めなさい。
制約
1 <= N <= 1000
1 <= K <= 1000
入力
N K
出力
太郎君が本を読み終わるまでの日数を出力せよ。
◇◇◇◇◇◇
100ページの本を10ページずつ読む場合、100 / 10 = 10で答えは10日だ。それじゃあ99ページの本を10ページずつ読む場合は? 99 / 10 = 9あまり9だ。あまり? あまりの存在を忘れていた。あまりはどうすればいい? 99ページの本を10ページずつ読む場合も答えは10日にならなければならないはずだ。
私はプログラムの処理が実際どうなっているか確認するためにコードを書き直す。
◆◆◆◆◆◆
#include <bits/stdc++.h>
using namespace std;
int main() {
int ans = 99 / 10;
cout << ans << endl;
}
◆◆◆◆◆◆
このプログラムを実行すると、出力された答えは「9」だった。
やっぱり私がさっき書いたプログラムでは割り算のあまりの処理がうまくいっていなかったのだ。この問題では、99 / 10 = 10にならなければならない。つまり、割り算の答えの切り上げ処理が必要である。
しかし、私はそこからどうずればいいのか分からなかった。切り上げの処理をどう書けばいいのか分からないのだ。
「残り時間5分です」
枝刈先輩が淡々と残り時間を告げる。
残り5分。どうすればいい? 私のプログラムの問題点は見つかった。しかし、どうやって解決すればいいのか分からない。私の頭の中で様々な考えがグルグルと回っている。本で勉強したif文というやつを使えばいいのか? だけどまだ私はif文を理解していない。何をどう書けばいいのか分からない。
私はもう一度競プロの本を読み返す。一か八か、割り算の切り上げ処理のプログラムを探す。それさえ見つかればこの問題も解けるはずだ。どこかにあってくれ。
「残り時間1分です」
見つけた。「a / bの答えを切り上げるには(a+b-1)/bをすればよい」と書いてあった。これだ!
すぐにコードを書き直す。間に合って!
◆◆◆◆◆◆
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
int ans = (n + k - 1) / k;
cout << ans << endl;
}
◆◆◆◆◆◆
私は書いたコードをウェブサイトにコピペして「提出」ボタンを押した。どうだ? どうなんだ? 結果が出るまでの数秒が永遠に感じられた。
そして、数秒の後、そこには正解を表す「AC」の文字があった。
「終了です」
枝刈先輩が時間終了を告げた。
間に合った。ついに私はやり遂げた。本を読みながらとはいえ、一人で競プロの問題を解いたのだ。嬉しかった。それと同時に安堵した。私でも問題が解けるのだ。
そしてすぐにハッと思い出す。これは勝負なのだ。私が一問解けたからといって勝負に勝ったとは限らない。私は春崎先輩を見ると、春崎先輩もこちらを見ていた。
「一問解けたようですね」
春崎先輩が優しい声で言った。その声色にはもうサイコパスの要素は感じられなかった。
「はい。春崎先輩は?」
私がそう尋ねると、春崎先輩は優しく微笑みながら言った。
「私は一問も解けませんでした」
「一問も!? それじゃあ!」
「そうです。あなたの勝ちです。そのパソコンはさしあげます」
「やったー!」
私は立ち上がると早希と玲奈、枝刈先輩とハイタッチを交わした。勝ったのだ。なぜかは分からないけど勝ったのだ。なぜ勝った? 私が一問解いて、春崎先輩は一問も解けなかったから私の勝ち。なぜ?
「それにしても春崎先輩、あの、こう言うのは失礼かもしれませんが、プログラミングは得意だったんじゃないんですか? それなのに一問も解けなかったなんて」
私は率直な疑問を投げかける。
春崎先輩は笑顔で答えた。
「いえいえ、嗜んだことがあるだけでプログラミングは苦手なんです。本当は一問くらい解けるかしらとは思っていたのだけれど、残念です」
「苦手なのにどうして競プロで勝負を?」
「相手の土俵で闘うってとてもカッコいいじゃない? ずっと憧れていたのよね」
意味の分からないことを言って春崎先輩は笑った。やっぱりサイコパスかもしれない、と私は思った。
「それにしてもよく一問解けたな」
早希がそう褒めてくれた。
「運が良かっただけだよ」
「運も実力のうちだろ。さすが部長だぜ」
「さすが部長」
玲奈も褒めてくれた。
「さあ、部室に帰ろうぜ」
枝刈先輩が言った。
その後、パソコン部からありがたくデスクトップパソコンをいただき、競プロ部の部室に持って帰ったとさ。
■■■つづく■■■
新規登録で充実の読書を
- マイページ
- 読書の状況から作品を自動で分類して簡単に管理できる
- 小説の未読話数がひと目でわかり前回の続きから読める
- フォローしたユーザーの活動を追える
- 通知
- 小説の更新や作者の新作の情報を受け取れる
- 閲覧履歴
- 以前読んだ小説が一覧で見つけやすい
アカウントをお持ちの方はログイン
ビューワー設定
文字サイズ
背景色
フォント
組み方向
機能をオンにすると、画面の下部をタップする度に自動的にスクロールして読み進められます。
応援すると応援コメントも書けます