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;
using ll = long long;
#define int ll
#define all(v) v.begin(), v.end()
#define pb push_back
void dbg_out() { cerr << endl; }
template<typename H, typename... T>
void dbg_out(H h, T... t) { cerr << ' ' << h; dbg_out(t...); }
#define dbg(...) { cerr << #__VA_ARGS__ << ':'; dbg_out(__VA_ARGS__); }
constexpr int N = 100'000;
vector<int> g[N];
int n, m;
int ans = 0;
int sub[N];
void dfs(int u, int dad=-1) {
sub[u] = 1;
for(int v: g[u]) if(v != dad) {
dfs(v, u);
sub[u] += sub[v];
}
int cnt = 0;
for(int v: g[u]) if(v != dad) {
cnt += sub[v] * (n - sub[v] - 1);
}
cnt += (n - sub[u]) * (sub[u] - 1);
ans += cnt;
}
void solve() {
cin >> n >> m;
for(int i=0;i<m;i++) {
int u, v; cin >> u >> v;
--u; --v;
g[u].pb(v);
g[v].pb(u);
}
dfs(0);
cout << ans << '\n';
}
signed main() {
ios::sync_with_stdio(false); cin.tie(0);
solve();
}
# | 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... |