# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
59291 | gabrielsimoes | Duathlon (APIO18_duathlon) | C++17 | 178 ms | 22996 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
const int MAXN = 1e5+10;
const int MAXM = 2e5+10;
int n, m;
vector<int> g[MAXN];
ll sub[MAXN];
bool ok[MAXN];
void dfs0(int cur, int pre) {
if (ok[cur]) return;
ok[cur] = 1;
sub[cur] = 1;
for (int nx : g[cur]) {
if (nx != pre) {
dfs0(nx, cur);
sub[cur] += sub[nx];
}
}
}
ll ans = 0;
void dfs1(int cur, int pre, ll sum = 0) {
if (ok[cur]) return;
ok[cur] = 1;
ans += 2 * sum * (sub[cur]-1);
// printf("dfs1 %d %lld %lld: ans %lld\n", cur, sum, sub[cur], ans);
for (int nx : g[cur]) {
if (nx != pre) {
ans += (sub[cur]-1-sub[nx]) * sub[nx];
dfs1(nx, cur, sum + sub[cur] - sub[nx]);
// printf("dfs1 %d: ans %lld\n", cur, ans);
}
}
}
int main() {
scanf("%d%d", &n, &m);
for (int i = 0,a,b; i < m; i++) {
scanf("%d%d", &a, &b);
g[a].push_back(b);
g[b].push_back(a);
}
for (int i = 0; i < n; i++) dfs0(i, i);
memset(ok, 0, sizeof(ok));
for (int i = 0; i < n; i++) dfs1(i, i);
printf("%lld\n", ans);
}
Compilation message (stderr)
# | 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... |