| # | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
|---|---|---|---|---|---|---|---|
| 1345748 | killerzaluu | Duathlon (APIO18_duathlon) | C++20 | 1095 ms | 12356 KiB |
#include <bits/stdc++.h>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n, m;
cin >> n >> m;
vector<vector<int>> g(n + 1);
for (int i = 0; i < m; i++) {
int u, v;
cin >> u >> v;
g[u].push_back(v);
g[v].push_back(u);
}
vector<int> vis(n + 1, 0), incomp(n + 1, 0), banned(n + 1, 0);
long long ans = 0;
for (int st = 1; st <= n; st++) {
if (vis[st]) continue;
vector<int> comp;
queue<int> q;
q.push(st);
vis[st] = 1;
while (!q.empty()) {
int u = q.front();
q.pop();
comp.push_back(u);
incomp[u] = 1;
for (int v : g[u]) {
if (!vis[v]) {
vis[v] = 1;
q.push(v);
}
}
}
int s = (int)comp.size();
if (s < 3) {
for (int x : comp) incomp[x] = 0;
continue;
}
for (int ban : comp) {
banned[ban] = 1;
long long sumsq = 0;
unordered_set<int> seen;
queue<int> qq;
for (int x : comp) {
if (x == ban) continue;
if (seen.count(x)) continue;
int cnt = 0;
qq.push(x);
seen.insert(x);
while (!qq.empty()) {
int u = qq.front();
qq.pop();
cnt++;
for (int v : g[u]) {
if (!incomp[v] || banned[v]) continue;
if (seen.count(v)) continue;
seen.insert(v);
qq.push(v);
}
}
sumsq += 1LL * cnt * cnt;
}
long long A = 1LL * (s - 1) * (s - 1) - sumsq;
ans += 1LL * s * (s - 1) * (s - 2) - A;
banned[ban] = 0;
}
for (int x : comp) incomp[x] = 0;
}
cout << ans << '\n';
return 0;
}| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
| # | Verdict | Execution time | Memory | Grader output |
|---|---|---|---|---|
| Fetching results... | ||||
