Submission #405081

#TimeUsernameProblemLanguageResultExecution timeMemory
405081BERNARB01Duathlon (APIO18_duathlon)C++17
0 / 100
1094 ms1048580 KiB
#include <bits/stdc++.h> using namespace std; int main() { ios::sync_with_stdio(false); cin.tie(0); int n, m; cin >> n >> m; vector<vector<int>> g(n); for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; --u; --v; g[u].push_back(v); g[v].push_back(u); } vector<long long> sbt(n, 0); long long ans = 0; function<void(int, int)> dfs0 = [&](int u, int p) { sbt[u] = 1; for (int v : g[u]) { if (v != p) { dfs0(v, u); sbt[u] += sbt[v]; } } long long sum = n - 1; long long sbtp = n - sbt[u]; ans += sbtp * 1LL * (sum - sbtp); for (int v : g[u]) { if (v != p) { ans += sbt[v] * 1LL * (sum - sbt[v]); } } }; for (int i = 0; i < n; i++) { if (sbt[i] == 0) { dfs0(i, -1); } } cout << ans << '\n'; return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...