Submission #569110

#TimeUsernameProblemLanguageResultExecution timeMemory
569110SSRS철인 이종 경기 (APIO18_duathlon)C++14
8 / 100
109 ms5956 KiB
#include <bits/stdc++.h> using namespace std; int main(){ int n, m; cin >> n >> m; vector<vector<int>> E(n); for (int i = 0; i < m; i++){ int u, v; cin >> u >> v; u--; v--; E[u].push_back(v); E[v].push_back(u); } vector<bool> used(n, false); long long ans = 0; for (int i = 0; i < n; i++){ if (!used[i]){ used[i] = true; int cntv = 0, cnte = 0; queue<int> Q; Q.push(i); while (!Q.empty()){ int v = Q.front(); Q.pop(); cntv++; cnte += E[v].size(); for (int w : E[v]){ if (!used[w]){ used[w] = true; Q.push(w); } } } cnte /= 2; if (cnte == cntv - 1){ ans += (long long) cntv * (cntv - 1) * (cntv - 2) / 3; } else { ans += (long long) cntv * (cntv - 1) * (cntv - 2); } } } cout << ans << endl; }
#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...