B - Ticket Counter
解説
現在の時刻を としてもっておく。 に対して、次が成立する。
- : 番目のお客さんはすぐに買い物ができる。
- : 番目のお客さんは まで待たなければならない。
番目のお客さんが買い物を開始できる時刻は、 と表される。 いずれの場合も、 かかるので、 番目のお客さんが買い物を終える時刻は となる。
このように を更新していくと、前の客が並んでいるかどうかは考慮しなくてもよい。
提出コード
- Go
func main() {
var n, a int
scanIntVariables(&n, &a)
T := readInts()
t := 0
for i := 0; i < n; i++ {
t = max(t, T[i]) + a
writeLine(t)
}
}
- C++
int main() {
ll n, a; cin >> n >> a;
vector<ll>T(n); rep(i, 0, n) cin >> T[i];
ll t = 0;
rep(i,0,n){
t = max(t, T[i]) + a;
cout << t << endl;
}
}