Submission #710179

#TimeUsernameProblemLanguageResultExecution timeMemory
710179vjudge1철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
1091 ms1048576 KiB
/* Author : DeMen100ns (a.k.a Vo Khac Trieu) School : VNU-HCM High school for the Gifted fuck you adhoc */ #include <bits/stdc++.h> #define endl '\n' #define int long long using namespace std; const int N = 3e5 + 5; const long long INF = 1e18 + 7; const int MAXA = 1e9; const int B = sqrt(N) + 5; vector <int> a[N]; int sub[N]; bool f[N]; int ans = 0, n; void dfs(int u, int par = 0){ f[u] = true; //sub[u] = 1; for(int i : a[u]){ if (i == par) continue; dfs(i, u); ans += sub[u] * sub[i]; sub[u] += sub[i]; } ans += (n - sub[u] - 1) * sub[u]; sub[u]++; } void solve() { int m; cin >> n >> m; for(int i = 1; i <= m; ++i){ int u, v; cin >> u >> v; a[u].push_back(v); a[v].push_back(u); } for(int i = 1; i <= n; ++i){ if (!f[i]) dfs(i); } cout << 2ll * ans; } signed main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); // freopen("codeforces.inp","r",stdin); // freopen("codeforces.out","w",stdout); int t = 1; // cin >> t; while (t--) { solve(); } }
#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...