Submission #59394583
Source Code Expand
use proconio::input;
pub fn main() {
input! {
n: usize,
uv: [(usize, usize); n - 1],
};
let mut adj = vec![Vec::new(); n + 1];
let mut degrees = vec![0; n + 1];
for (u, v) in uv {
adj[u].push(v);
adj[v].push(u);
degrees[u] += 1;
degrees[v] += 1;
}
let mut visited = vec![false; n + 1];
let mut total_pairs = 0u64;
for node in 1..=n {
if degrees[node] == 3 && !visited[node] {
let mut stack = Vec::new();
stack.push(node);
visited[node] = true;
let mut degree_3_nodes = Vec::new();
degree_3_nodes.push(node);
let mut degree_2_nodes = Vec::new();
while let Some(u) = stack.pop() {
for &v in &adj[u] {
if degrees[v] == 3 && !visited[v] {
visited[v] = true;
stack.push(v);
degree_3_nodes.push(v);
}
}
}
for &u in °ree_3_nodes {
for &v in &adj[u] {
if degrees[v] == 2 {
degree_2_nodes.push(v);
}
}
}
let k = degree_2_nodes.len();
if k >= 2 {
total_pairs += (k * (k - 1) / 2) as u64;
}
}
}
println!("{}", total_pairs);
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Add One Edge 2 |
| User | macaroon |
| Language | Rust (rustc 1.70.0) |
| Score | 500 |
| Code Size | 1508 Byte |
| Status | AC |
| Exec Time | 38 ms |
| Memory | 22748 KiB |
Judge Result
| Set Name | Sample | All | ||||
|---|---|---|---|---|---|---|
| Score / Max Score | 0 / 0 | 500 / 500 | ||||
| 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, 01_test_01.txt, 01_test_02.txt, 01_test_03.txt, 01_test_04.txt, 01_test_05.txt, 01_test_06.txt, 01_test_07.txt, 01_test_08.txt, 01_test_09.txt, 01_test_10.txt, 01_test_11.txt, 01_test_12.txt, 01_test_13.txt, 01_test_14.txt, 01_test_15.txt, 01_test_16.txt, 01_test_17.txt, 01_test_18.txt, 01_test_19.txt, 01_test_20.txt, 01_test_21.txt, 01_test_22.txt, 01_test_23.txt, 01_test_24.txt, 01_test_25.txt, 01_test_26.txt, 01_test_27.txt, 01_test_28.txt, 01_test_29.txt, 01_test_30.txt, 01_test_31.txt, 01_test_32.txt, 01_test_33.txt, 01_test_34.txt, 01_test_35.txt, 02_hand_01.txt |
| Case Name | Status | Exec Time | Memory |
|---|---|---|---|
| 00_sample_01.txt | AC | 1 ms | 1932 KiB |
| 00_sample_02.txt | AC | 1 ms | 1964 KiB |
| 00_sample_03.txt | AC | 0 ms | 1940 KiB |
| 01_test_01.txt | AC | 38 ms | 22256 KiB |
| 01_test_02.txt | AC | 38 ms | 22188 KiB |
| 01_test_03.txt | AC | 38 ms | 22108 KiB |
| 01_test_04.txt | AC | 38 ms | 22064 KiB |
| 01_test_05.txt | AC | 38 ms | 22240 KiB |
| 01_test_06.txt | AC | 38 ms | 22200 KiB |
| 01_test_07.txt | AC | 38 ms | 22188 KiB |
| 01_test_08.txt | AC | 38 ms | 22200 KiB |
| 01_test_09.txt | AC | 38 ms | 22156 KiB |
| 01_test_10.txt | AC | 38 ms | 22172 KiB |
| 01_test_11.txt | AC | 38 ms | 22048 KiB |
| 01_test_12.txt | AC | 38 ms | 22220 KiB |
| 01_test_13.txt | AC | 38 ms | 22132 KiB |
| 01_test_14.txt | AC | 37 ms | 22216 KiB |
| 01_test_15.txt | AC | 38 ms | 22048 KiB |
| 01_test_16.txt | AC | 5 ms | 4904 KiB |
| 01_test_17.txt | AC | 32 ms | 19052 KiB |
| 01_test_18.txt | AC | 7 ms | 6196 KiB |
| 01_test_19.txt | AC | 17 ms | 11772 KiB |
| 01_test_20.txt | AC | 11 ms | 8328 KiB |
| 01_test_21.txt | AC | 23 ms | 22200 KiB |
| 01_test_22.txt | AC | 23 ms | 22080 KiB |
| 01_test_23.txt | AC | 23 ms | 22120 KiB |
| 01_test_24.txt | AC | 22 ms | 22192 KiB |
| 01_test_25.txt | AC | 23 ms | 21988 KiB |
| 01_test_26.txt | AC | 35 ms | 22696 KiB |
| 01_test_27.txt | AC | 34 ms | 22676 KiB |
| 01_test_28.txt | AC | 35 ms | 22648 KiB |
| 01_test_29.txt | AC | 35 ms | 22632 KiB |
| 01_test_30.txt | AC | 34 ms | 22740 KiB |
| 01_test_31.txt | AC | 37 ms | 22656 KiB |
| 01_test_32.txt | AC | 36 ms | 22728 KiB |
| 01_test_33.txt | AC | 36 ms | 22740 KiB |
| 01_test_34.txt | AC | 38 ms | 22700 KiB |
| 01_test_35.txt | AC | 37 ms | 22748 KiB |
| 02_hand_01.txt | AC | 21 ms | 22128 KiB |