제출 #374598

#제출 시각아이디문제언어결과실행 시간메모리
374598morato철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
1129 ms1048580 KiB
#include <bits/stdc++.h> using namespace std; const int N = 1e5 + 5; long long ans; vector<int> adj[N]; int subtree[N], n; void dfs(int v, int p = 0) { subtree[v] = 1; for (int u : adj[v]) if (u != p) { dfs(u, v); subtree[v] += subtree[u]; } int aux = (v == 1 ? 0 : n - subtree[v]); vector<int> pref; pref.push_back(aux); long long local_ans = 0; for (int u : adj[v]) if (u != p) { local_ans += pref.back() * subtree[u]; pref.push_back(pref.back() + subtree[u]); } ans += 2 * local_ans; } int main() { ios::sync_with_stdio(false); cin.tie(0); int m; cin >> n >> m; for (int i = 0; i < m; i++) { int a, b; cin >> a >> b; adj[a].push_back(b); adj[b].push_back(a); } dfs(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...