結果

問題 No.139 交差点
ユーザー ゴリポン先生
提出日時 2025-10-08 09:20:14
言語 D
(dmd 2.109.1)
結果
AC  
実行時間 2 ms / 5,000 ms
コード長 770 bytes
コンパイル時間 7,653 ms
コンパイル使用メモリ 204,568 KB
実行使用メモリ 7,716 KB
最終ジャッジ日時 2025-10-08 09:20:24
合計ジャッジ時間 9,505 ms
ジャッジサーバーID
(参考情報)
judge5 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 28
権限があれば一括ダウンロードができます

ソースコード

diff #

module main;
// https://sugarknri.hatenablog.com/entry/2016/06/02/232247 より
import std;

void main()
{
	// 入力
	int N, L;
	readln.chomp.formattedRead(`%d %d`, N, L);
	auto X = new int[](N), W = new int[](N), T = new int[](N);
	foreach (ref x, ref w, ref t; lockstep(X, W, T))
		readln.chomp.formattedRead(`%d %d %d`, x, w, t);
	// 答えの計算
	// sは経過時間、pは現在位置
	int s = 0, p = 0;
	foreach (i; 0 .. N) {
		// 交差点の直前まで進み、経過時間と現在位置を更新
		s += X[i] - p;
		p = X[i];
		// 渡れないなら次の青まで待機
		if (T[i] - W[i] < s % (T[i] * 2)) {
			s += T[i] * 2 - s % (T[i] * 2);
		}
	}
	// 答えの出力
	// 最後の交差点から友人宅につくまでL-p進む
	writeln(s + L - p);
}
0