Official
A - バスの出発時刻 / Bus Departure Time Editorial by admin
Qwen3-Coder-480B概要
最後の生徒がバスに乗車する時刻を求め、それに \(K\) 分を加えた時刻を出力する問題。
考察
この問題では、すべての生徒がバスに乗車する時刻 \(T_1, T_2, \ldots, T_N\) が与えられ、その中で最も遅い時刻(最大値)を求めた上で、それに定数 \(K\) を加えるだけです。
例えば、生徒が乗車する時刻が \([10, 50, 30]\) で、\(K = 5\) だったとします。このとき、最後の生徒は時刻 \(50\) に乗車するので、出発時刻は \(50 + 5 = 55\) になります。
素朴なアプローチとしては、すべての時刻をソートして最後の要素を取り出す方法がありますが、それだと時間計算量が \(O(N \log N)\) になってしまいます。しかし、この問題ではソートする必要はなく、単純に最大値を求めれば良いので、線形時間で解くことができます。
アルゴリズム
- 入力から生徒の人数 \(N\) と出発までの時間 \(K\) を受け取る。
- 各生徒の乗車時刻 \(T_1, T_2, \ldots, T_N\) をリストとして受け取る。
- そのリストの最大値(最後の生徒の乗車時刻)を求める。
- 最大値に \(K\) を加えたものを出力する。
これは組み込み関数 max() を使うことで簡単に実現できます。
計算量
- 時間計算量: \(O(N)\)
- 空間計算量: \(O(N)\)
実装のポイント
- 入力を効率よく処理するために、
map関数とlistを使って一度に整数リストに変換している。 - 最後の乗車時刻を求めるのに
max(T)を使っている。これは線形時間で動作する。
## ソースコード
```python
N, K = map(int, input().split())
T = list(map(int, input().split()))
last_time = max(T)
departure_time = last_time + K
print(departure_time)
この解説は qwen3-coder-480b によって生成されました。
posted:
last update: