結果

問題 No.139 交差点
ユーザー kmjp
提出日時 2015-01-26 02:22:11
言語 Python2
(2.7.15)
結果
AC  
実行時間 15 ms
コード長 782 Byte
コンパイル時間 28 ms
使用メモリ 4,448 KB
最終ジャッジ日時 2018-09-11 10:15:41

テストケース

テストケース表示
入力 結果 実行時間
使用メモリ
sample1.txt AC 14 ms
4,444 KB
sample2.txt AC 14 ms
4,440 KB
sample3.txt AC 14 ms
4,440 KB
testcase01.txt AC 14 ms
4,440 KB
testcase02.txt AC 14 ms
4,444 KB
testcase03.txt AC 14 ms
4,444 KB
testcase04.txt AC 14 ms
4,444 KB
testcase05.txt AC 14 ms
4,444 KB
testcase06.txt AC 15 ms
4,444 KB
testcase07.txt AC 15 ms
4,440 KB
testcase08.txt AC 15 ms
4,444 KB
testcase09.txt AC 14 ms
4,444 KB
testcase10.txt AC 15 ms
4,448 KB
testcase11.txt AC 14 ms
4,444 KB
testcase12.txt AC 15 ms
4,440 KB
testcase13.txt AC 15 ms
4,444 KB
testcase14.txt AC 15 ms
4,444 KB
testcase15.txt AC 15 ms
4,440 KB
testcase16.txt AC 14 ms
4,444 KB
testcase17.txt AC 14 ms
4,440 KB
testcase18.txt AC 14 ms
4,444 KB
testcase19.txt AC 14 ms
4,440 KB
testcase20.txt AC 14 ms
4,444 KB
testcase21.txt AC 14 ms
4,440 KB
testcase22.txt AC 14 ms
4,444 KB
testcase23.txt AC 14 ms
4,440 KB
testcase24.txt AC 14 ms
4,440 KB
testcase25.txt AC 13 ms
4,444 KB
testcase26.txt AC 14 ms
4,440 KB
testcase27.txt AC 14 ms
4,444 KB
testcase28.txt AC 14 ms
4,440 KB
テストケース一括ダウンロード

ソースコード

diff #
# -*- coding: utf-8 -*-

# 入力
N,L = map(int,raw_input().strip().split())
X = [0]*(N+1)
W = [0]*(N+1)
T = [0]*(N+1)

for i in range(N):
	X[i],W[i],T[i] = map(int,raw_input().strip().split())


# 友人宅=最後の交差点と考えた方が楽です
X[N] = L

# 次の交差点まで進む時間を計算
current = X[0]

for i in range(N):
	# 信号は2*T[i]周期で青赤切り替わる。
	# 青信号の間に交差点を渡るには、W[i]後まで青信号ならいいので、
	# (今の時刻) % (2*T[i])が(T[i]-W[i])以下なら渡りきれる。
	# 逆に(T[i]-W[i])を超えるなら次の青信号を待つ
	if current % (2*T[i]) > T[i]-W[i]:
		current = (1 + (current / (2*T[i]))) * (2*T[i])
	
	# 次の交差点まで進む
	current += X[i+1]-X[i]

print current
0