Please sign in first.
Submission #8635497
Source Code Expand
// Practice AtCoder
// author: Leonardone @ NEETSDKASU
fn main() {
let mut stdin = String::new();
std::io::Read::read_to_string(&mut std::io::stdin(), &mut stdin).unwrap();
let mut stdin = stdin.split_whitespace();
let mut get = || stdin.next().unwrap();
macro_rules! get {
($t:ty) => (get().parse::<$t>().unwrap());
() => (get!(i64));
}
let n = get!(usize);
let mut tree = vec![vec![]; n+1];
let mut f = 0;
for i in 0..n-1 {
let a = get!(usize);
let b = get!(usize);
tree[a].push((b, i));
tree[b].push((a, i));
f = a;
}
let col = tree.iter().map(Vec::len).max().unwrap();
let mut edg = vec![0; n-1];
for u in 1..n+1 {
let mut tmp: Vec<_> = tree[u].iter().map(|&(_,e)| edg[e]).filter(|c|*c>0).collect();
tmp.sort();
let mut tc = 1;
let mut ti = 0;
for &(v, e) in tree[u].iter() {
if edg[e] > 0 {
continue;
}
loop {
if ti >= tmp.len() {
edg[e] = tc;
tc += 1;
break;
} else if tc < tmp[ti] {
edg[e] = tc;
tc += 1;
break;
} else if tc == tmp[ti] {
tc += 1;
ti += 1;
} else {
ti += 1;
}
}
}
}
println!("{}", col);
for &i in edg.iter() {
println!("{}", i);
}
}
Submission Info
| Submission Time | |
|---|---|
| Task | D - Coloring Edges on Tree |
| User | neetsdkasu |
| Language | Rust (1.15.1) |
| Score | 400 |
| Code Size | 1625 Byte |
| Status | AC |
| Exec Time | 192 ms |
| Memory | 16764 KiB |
Compile Error
warning: variable `f` is assigned to, but never used, #[warn(unused_variables)] on by default
--> ./Main.rs:16:9
|
16 | let mut f = 0;
| ^^^^^
warning: value assigned to `f` is never read, #[warn(unused_assignments)] on by default
--> ./Main.rs:22:9
|
22 | f = a;
| ^
warning: unused variable: `v`, #[warn(unused_variables)] on by default
--> ./Main.rs:31:15
|
31 | for &(v, e) in tree[u].iter() {
| ^
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 400 / 400 | ||||
| Status |
|
|
| Set Name | Test Cases |
|---|---|
| Sample | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt |
| All | 00-sample-01.txt, 00-sample-02.txt, 00-sample-03.txt, 11-small-01.txt, 11-small-02.txt, 11-small-03.txt, 11-small-04.txt, 11-small-05.txt, 11-small-06.txt, 11-small-07.txt, 11-small-08.txt, 11-small-09.txt, 11-small-10.txt, 31-large-01.txt, 31-large-02.txt, 31-large-03.txt, 31-large-04.txt, 31-large-05.txt, 41-min-01.txt, 51-max-01.txt, 61-path-01.txt, 61-path-02.txt, 61-path-03.txt, 71-star-01.txt, 71-star-02.txt, 71-star-03.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00-sample-01.txt | AC | 2 ms | 4352 KiB |
| 00-sample-02.txt | AC | 2 ms | 4352 KiB |
| 00-sample-03.txt | AC | 2 ms | 4352 KiB |
| 11-small-01.txt | AC | 2 ms | 4352 KiB |
| 11-small-02.txt | AC | 3 ms | 4352 KiB |
| 11-small-03.txt | AC | 2 ms | 4352 KiB |
| 11-small-04.txt | AC | 3 ms | 4352 KiB |
| 11-small-05.txt | AC | 2 ms | 4352 KiB |
| 11-small-06.txt | AC | 3 ms | 4352 KiB |
| 11-small-07.txt | AC | 2 ms | 4352 KiB |
| 11-small-08.txt | AC | 3 ms | 4352 KiB |
| 11-small-09.txt | AC | 3 ms | 4352 KiB |
| 11-small-10.txt | AC | 2 ms | 4352 KiB |
| 31-large-01.txt | AC | 20 ms | 4352 KiB |
| 31-large-02.txt | AC | 115 ms | 10620 KiB |
| 31-large-03.txt | AC | 43 ms | 6396 KiB |
| 31-large-04.txt | AC | 38 ms | 6396 KiB |
| 31-large-05.txt | AC | 87 ms | 8444 KiB |
| 41-min-01.txt | AC | 2 ms | 4352 KiB |
| 51-max-01.txt | AC | 192 ms | 16764 KiB |
| 61-path-01.txt | AC | 111 ms | 10620 KiB |
| 61-path-02.txt | AC | 29 ms | 4352 KiB |
| 61-path-03.txt | AC | 36 ms | 6396 KiB |
| 71-star-01.txt | AC | 23 ms | 4352 KiB |
| 71-star-02.txt | AC | 136 ms | 12796 KiB |
| 71-star-03.txt | AC | 57 ms | 6396 KiB |