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
AC × 3
AC × 27
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