Submission #29990490


Source Code Expand

use std::collections::VecDeque;

use proconio::{input, marker::Usize1};

fn adjacency_list(n: usize, uv: &[(usize, usize)]) -> Vec<Vec<usize>> {
    let mut e = vec![vec![]; n];
    for (u, v) in uv.iter().copied() {
        e[u].push(v);
        e[v].push(u);
    }
    e
}

fn main() {
    input! {
        n: usize,
        m: usize,
        ab: [(Usize1, Usize1); m],
    };

    let edges = adjacency_list(n, &ab);
    let inf = n;
    let mut dist = vec![n; n];
    let mut deque = VecDeque::new();
    dist[0] = 0;
    deque.push_back(0);
    while let Some(u) = deque.pop_front() {
        for v in edges[u].iter().copied() {
            if dist[v] != inf {
                continue;
            }
            dist[v] = dist[u] + 1;
            deque.push_back(v);
        }
    }
    for d in dist {
        println!("{}", d.min(120));
    }
}

Submission Info

Submission Time
Task 078 - Difference Optimization 1
User bouzuya
Language Rust (1.42.0)
Score 1000
Code Size 853 Byte
Status AC
Exec Time 181 ms
Memory 12340 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 1000 / 1000
Status
AC × 1
AC × 6
Set Name Test Cases
Sample sample_01.txt
All normal_01.txt, normal_02.txt, normal_03.txt, normal_04.txt, normal_05.txt, sample_01.txt
Case Name Status Exec Time Memory
normal_01.txt AC 181 ms 12340 KiB
normal_02.txt AC 156 ms 10000 KiB
normal_03.txt AC 32 ms 7584 KiB
normal_04.txt AC 136 ms 5744 KiB
normal_05.txt AC 2 ms 2108 KiB
sample_01.txt AC 2 ms 2028 KiB