| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1352821 | DanerZein | 철인 이종 경기 (APIO18_duathlon) | C++20 | 1120 ms | 1114112 KiB |
#include <bits/stdc++.h>
using namespace std;
typedef vector<int> vi;
typedef long long ll;
const int MAX_N=1e5+10;
vector<vi> G;
int sub[MAX_N];
int acum[MAX_N];
int ans[MAX_N];
int n;
void dfs(int u,int p){
sub[u]=1;
for(auto &v:G[u]){
if(v!=p){
dfs(v,u);
sub[u]+=sub[v];
acum[u]+=acum[v];
}
}
ans[u]+=2*acum[u];
acum[u]+=(sub[u]-1);
for(auto &v:G[u]){
if(v!=p){
ans[u]+=sub[v]*(n-sub[v]-1);
}
}
}
int main(){
int m; cin>>n>>m;
G.resize(n);
for(int i=0;i<m;i++){
int a,b; cin>>a>>b;
a--; b--;
G[a].push_back(b);
G[b].push_back(a);
}
memset(acum,0,sizeof acum);
dfs(0,0);
ll res=0;
for(int i=0;i<n;i++){
res+=ans[i];
}
cout<<res<<endl;
}
| # | 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... | ||||
