제출 #753030

#제출 시각아이디문제언어결과실행 시간메모리
753030wmrmr철인 이종 경기 (APIO18_duathlon)C++17
0 / 100
1067 ms1048576 KiB
#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 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...