Please sign in first.
Submission #59378810
Source Code Expand
#include <bits/stdc++.h>
using namespace std;
int n;
vector<int> g[200005];
int dsu[200005];
inline int root(int x) {
while (x != dsu[x])
x = dsu[x] = dsu[dsu[x]];
return x;
}
void dfs(int cur, int pa, int& cnt) {
for (const auto& i : g[cur]) {
if (g[i].size() == 2)
cnt++;
if (i != pa && g[i].size() == 3)
dfs(i, cur, cnt);
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int i = 1, u, v; i < n; i++)
cin >> u >> v, g[u].push_back(v), g[v].push_back(u);
iota(dsu, dsu + n + 1, 0);
for (int i = 1; i <= n; i++)
if (g[i].size() == 3)
for (const auto& j : g[i])
if (g[j].size() == 3)
if (const int ru = root(i), rv = root(j); ru != rv)
dsu[ru] = rv;
long long res = 0;
for (int i = 1; i <= n; i++) {
if (g[i].size() == 3 && dsu[i] == i) {
int cnt = 0;
dfs(i, 0, cnt);
res += 1LL * cnt * (cnt - 1) / 2;
}
}
cout << res << '\n';
return 0;
}
Submission Info
| Submission Time | |
|---|---|
| Task | F - Add One Edge 2 |
| User | woruo27 |
| Language | C++ 17 (gcc 12.2) |
| Score | 500 |
| Code Size | 982 Byte |
| Status | AC |
| Exec Time | 78 ms |
| Memory | 18412 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 | 3 ms | 8100 KiB |
| 00_sample_02.txt | AC | 3 ms | 8120 KiB |
| 00_sample_03.txt | AC | 3 ms | 8064 KiB |
| 01_test_01.txt | AC | 60 ms | 15292 KiB |
| 01_test_02.txt | AC | 78 ms | 15144 KiB |
| 01_test_03.txt | AC | 65 ms | 15224 KiB |
| 01_test_04.txt | AC | 65 ms | 15296 KiB |
| 01_test_05.txt | AC | 59 ms | 15124 KiB |
| 01_test_06.txt | AC | 68 ms | 15124 KiB |
| 01_test_07.txt | AC | 69 ms | 15156 KiB |
| 01_test_08.txt | AC | 74 ms | 15228 KiB |
| 01_test_09.txt | AC | 62 ms | 15232 KiB |
| 01_test_10.txt | AC | 62 ms | 15088 KiB |
| 01_test_11.txt | AC | 59 ms | 15232 KiB |
| 01_test_12.txt | AC | 61 ms | 15092 KiB |
| 01_test_13.txt | AC | 64 ms | 15124 KiB |
| 01_test_14.txt | AC | 73 ms | 15152 KiB |
| 01_test_15.txt | AC | 68 ms | 15220 KiB |
| 01_test_16.txt | AC | 10 ms | 9240 KiB |
| 01_test_17.txt | AC | 54 ms | 14052 KiB |
| 01_test_18.txt | AC | 13 ms | 9656 KiB |
| 01_test_19.txt | AC | 29 ms | 11616 KiB |
| 01_test_20.txt | AC | 18 ms | 10324 KiB |
| 01_test_21.txt | AC | 37 ms | 18412 KiB |
| 01_test_22.txt | AC | 37 ms | 18348 KiB |
| 01_test_23.txt | AC | 38 ms | 18312 KiB |
| 01_test_24.txt | AC | 35 ms | 18344 KiB |
| 01_test_25.txt | AC | 36 ms | 18412 KiB |
| 01_test_26.txt | AC | 57 ms | 15444 KiB |
| 01_test_27.txt | AC | 52 ms | 15448 KiB |
| 01_test_28.txt | AC | 61 ms | 15344 KiB |
| 01_test_29.txt | AC | 53 ms | 15444 KiB |
| 01_test_30.txt | AC | 55 ms | 15452 KiB |
| 01_test_31.txt | AC | 51 ms | 15416 KiB |
| 01_test_32.txt | AC | 53 ms | 15352 KiB |
| 01_test_33.txt | AC | 63 ms | 15368 KiB |
| 01_test_34.txt | AC | 59 ms | 15428 KiB |
| 01_test_35.txt | AC | 67 ms | 15316 KiB |
| 02_hand_01.txt | AC | 31 ms | 15148 KiB |