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 |
|
|
| 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 |