提出 #47427639
ソースコード 拡げる
use std::{cmp::Reverse, collections::BinaryHeap};
use proconio::{input, marker::Usize1};
fn main() {
input! {
n: usize,
m: usize,
x: Usize1,
y: Usize1,
abtk: [(Usize1, Usize1, usize, usize); m]
};
let mut edges = vec![vec![]; n];
for (a, b, t, k) in abtk {
edges[a].push((b, t, k));
edges[b].push((a, t, k));
}
let inf = 1_usize << 60;
let mut time = vec![inf; n];
let mut pq = BinaryHeap::new();
pq.push((Reverse(0_usize), x));
time[x] = 0_usize;
while let Some((Reverse(t), u)) = pq.pop() {
if t > time[u] {
continue;
}
for (v, t, k) in edges[u].iter().copied() {
let nt = if time[u] % k == 0 {
time[u]
} else {
time[u] + k - (time[u] % k)
} + t;
if nt < time[v] {
time[v] = nt;
pq.push((Reverse(nt), v));
}
}
}
let ans = time[y];
if ans == inf {
println!("-1");
} else {
println!("{}", ans);
}
}
提出情報
| 提出日時 | |
|---|---|
| 問題 | E - Train |
| ユーザ | bouzuya |
| 言語 | Rust (rustc 1.70.0) |
| 得点 | 500 |
| コード長 | 1107 Byte |
| 結果 | AC |
| 実行時間 | 51 ms |
| メモリ | 21292 KiB |
ジャッジ結果
| セット名 | Sample | All | after_contest | ||||||
|---|---|---|---|---|---|---|---|---|---|
| 得点 / 配点 | 0 / 0 | 500 / 500 | 0 / 0 | ||||||
| 結果 |
|
|
|
| セット名 | テストケース |
|---|---|
| Sample | sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| All | hand.txt, max_01.txt, random_01.txt, random_02.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_21.txt, random_22.txt, random_23.txt, random_24.txt, random_31.txt, random_32.txt, random_33.txt, random_34.txt, sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt |
| after_contest | after_contest_01.txt, after_contest_02.txt, after_contest_03.txt |
| ケース名 | 結果 | 実行時間 | メモリ |
|---|---|---|---|
| after_contest_01.txt | AC | 1 ms | 2180 KiB |
| after_contest_02.txt | AC | 21 ms | 14848 KiB |
| after_contest_03.txt | AC | 24 ms | 16596 KiB |
| hand.txt | AC | 1 ms | 1992 KiB |
| max_01.txt | AC | 50 ms | 21252 KiB |
| random_01.txt | AC | 31 ms | 20008 KiB |
| random_02.txt | AC | 19 ms | 15440 KiB |
| random_05.txt | AC | 10 ms | 9496 KiB |
| random_06.txt | AC | 10 ms | 9840 KiB |
| random_07.txt | AC | 14 ms | 13588 KiB |
| random_08.txt | AC | 12 ms | 13056 KiB |
| random_11.txt | AC | 10 ms | 9444 KiB |
| random_12.txt | AC | 9 ms | 8964 KiB |
| random_13.txt | AC | 8 ms | 8744 KiB |
| random_14.txt | AC | 10 ms | 10452 KiB |
| random_15.txt | AC | 13 ms | 12624 KiB |
| random_16.txt | AC | 10 ms | 9584 KiB |
| random_17.txt | AC | 13 ms | 13304 KiB |
| random_18.txt | AC | 8 ms | 8684 KiB |
| random_21.txt | AC | 47 ms | 21292 KiB |
| random_22.txt | AC | 49 ms | 20664 KiB |
| random_23.txt | AC | 51 ms | 20604 KiB |
| random_24.txt | AC | 47 ms | 19988 KiB |
| random_31.txt | AC | 37 ms | 17000 KiB |
| random_32.txt | AC | 38 ms | 16584 KiB |
| random_33.txt | AC | 37 ms | 16604 KiB |
| random_34.txt | AC | 35 ms | 16264 KiB |
| sample_01.txt | AC | 1 ms | 2004 KiB |
| sample_02.txt | AC | 1 ms | 2004 KiB |
| sample_03.txt | AC | 1 ms | 1932 KiB |
| sample_04.txt | AC | 1 ms | 1952 KiB |