Submission #28637634
Source Code Expand
use proconio::{input, marker::Usize1};
fn dijkstra(n: usize, inf: usize, e: &[Vec<(usize, usize)>], s: usize) -> Vec<usize> {
use std::{cmp::Reverse, collections::BinaryHeap};
let mut d = vec![inf; n];
let mut pq = BinaryHeap::new();
d[s] = 0;
pq.push(Reverse((0, s)));
while let Some(Reverse((w_u, u))) = pq.pop() {
if w_u > d[u] {
continue;
}
for (v, w_v) in e[u].iter().copied() {
let w = w_u + w_v;
if w < d[v] {
d[v] = w;
pq.push(Reverse((w, v)));
}
}
}
d
}
fn adjacency_list(n: usize, uvw: &[(usize, usize, usize)]) -> Vec<Vec<(usize, usize)>> {
let mut e = vec![vec![]; n];
for (u, v, w) in uvw.iter().copied() {
e[u].push((v, w));
e[v].push((u, w));
}
e
}
fn main() {
input! {
n: usize,
x: usize,
abc: [(Usize1, Usize1, usize); n - 1],
};
let e = adjacency_list(n, &abc);
for u in 0..n {
let d = dijkstra(n, 1_000_000_000, &e, u);
if d.contains(&x) {
println!("Yes");
return;
}
}
println!("No");
}
Submission Info
| Submission Time |
|
| Task |
H - Shortest Path |
| User |
bouzuya |
| Language |
Rust (1.42.0) |
| Score |
6 |
| Code Size |
1182 Byte |
| Status |
AC |
| Exec Time |
848 ms |
| Memory |
2520 KiB |
Judge Result
| Set Name |
Sample |
All |
| Score / Max Score |
0 / 0 |
6 / 6 |
| Status |
|
|
| Set Name |
Test Cases |
| Sample |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt |
| All |
00_sample_00.txt, 00_sample_01.txt, 00_sample_02.txt, 01_random_00.txt, 01_random_01.txt, 01_random_02.txt, 01_random_03.txt, 01_random_04.txt, 01_random_05.txt, 01_random_06.txt, 01_random_07.txt, 01_random_08.txt, 01_random_09.txt, 02_path_00.txt, 02_path_01.txt, 02_path_02.txt, 02_path_03.txt, 02_path_04.txt, 03_star_00.txt, 03_star_01.txt, 03_star_02.txt, 03_star_03.txt, 03_star_04.txt, 04_path_c_max_00.txt, 04_path_c_max_01.txt, 04_path_c_max_02.txt, 04_path_c_max_03.txt |
| Case Name |
Status |
Exec Time |
Memory |
| 00_sample_00.txt |
AC |
7 ms |
1948 KiB |
| 00_sample_01.txt |
AC |
1 ms |
2080 KiB |
| 00_sample_02.txt |
AC |
1 ms |
2148 KiB |
| 01_random_00.txt |
AC |
552 ms |
2512 KiB |
| 01_random_01.txt |
AC |
98 ms |
2424 KiB |
| 01_random_02.txt |
AC |
558 ms |
2396 KiB |
| 01_random_03.txt |
AC |
31 ms |
2412 KiB |
| 01_random_04.txt |
AC |
555 ms |
2460 KiB |
| 01_random_05.txt |
AC |
240 ms |
2384 KiB |
| 01_random_06.txt |
AC |
568 ms |
2492 KiB |
| 01_random_07.txt |
AC |
59 ms |
2496 KiB |
| 01_random_08.txt |
AC |
548 ms |
2496 KiB |
| 01_random_09.txt |
AC |
356 ms |
2444 KiB |
| 02_path_00.txt |
AC |
182 ms |
2432 KiB |
| 02_path_01.txt |
AC |
17 ms |
2392 KiB |
| 02_path_02.txt |
AC |
188 ms |
2428 KiB |
| 02_path_03.txt |
AC |
92 ms |
2368 KiB |
| 02_path_04.txt |
AC |
176 ms |
2496 KiB |
| 03_star_00.txt |
AC |
845 ms |
2516 KiB |
| 03_star_01.txt |
AC |
42 ms |
2488 KiB |
| 03_star_02.txt |
AC |
848 ms |
2440 KiB |
| 03_star_03.txt |
AC |
12 ms |
2436 KiB |
| 03_star_04.txt |
AC |
843 ms |
2432 KiB |
| 04_path_c_max_00.txt |
AC |
172 ms |
2520 KiB |
| 04_path_c_max_01.txt |
AC |
67 ms |
2416 KiB |
| 04_path_c_max_02.txt |
AC |
173 ms |
2316 KiB |
| 04_path_c_max_03.txt |
AC |
18 ms |
2428 KiB |