ABC024-B - 自動ドア を解く
ABC024-B - 自動ドア
自動ドアが開いている時間を求める問題
センサー反応後に開き続けている時間と、人が通る時間が
入力値として与えられる
注意しなければならないのは、人が通る時間の間隔だろう
例えば、10秒間開き続ける自動ドアの場合を考える
0秒後に1人目が、10秒後に2人目が通る場合は
0〜10秒、10〜20秒の計20秒間ドアが開き続けることになる
次に、0秒後に1人目が、7秒後に2人目が通る場合を考える
この場合は、0〜7秒、7〜17秒の計17秒間がドアの開いている時間となる
つまり、ドアの開く時間よりも短い間隔で人が通る場合は
その分だけドアの開く時間は短くなるということになる
そこに注意してコードを書いていく
提出したコード
# 入力 N,T=map(int,input().split()) # 合計秒数 s=0 # 最初に人が通る時間 a=int(input()) for i in range(N-1): # 次に通る人の時間を取得 b=int(input()) # 人の通る間隔がドアの開く間隔より短い場合 if b-a<T: s+=b-a # 人の通る間隔がドアの開く間隔より長い場合 else: s+=T # 次の比較のための処理 a=b # 最後にドアが開いていた時間を足す s+=T # 出力 print(s)