제출 #405479

#제출 시각아이디문제언어결과실행 시간메모리
405479saleh철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
1106 ms1048580 KiB
#include <bits/stdc++.h> #define int long long using namespace std; const int MAXN = 100 * 1000 + 23; int n, m, ans; vector<int> g[MAXN]; bitset<MAXN> mark; //int ent(int x) { return x * (x - 1); } int gs(int v, int p) { int res = 1; mark[v] = true; for (auto i : g[v]) if (i != p) res += gs(i, v); return res; } int ds(int v, int p) { int res = g[v].size(); for (auto i : g[v]) if (i != p) res += ds(i, v); return res; } int32_t main() { ios_base::sync_with_stdio(false); cin.tie(nullptr), cout.tie(nullptr); cin >> n >> m; for (int i = 0; i < m; i++) { int u, v; cin >> u >> v; g[--u].push_back(--v), g[v].push_back(u); } for (int i = 0; i < n; i++) if (!mark[i]) { int x = gs(i, -1); int y = ds(i, -1); if (x * 2 == y) ans += x * (x - 1) * (x - 2); else for (int i = 0; i < x; i++) ans += i * (x - i - 1) * 2; } cout << ans; 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...