제출 #402166

#제출 시각아이디문제언어결과실행 시간메모리
402166A_D철인 이종 경기 (APIO18_duathlon)C++14
23 / 100
141 ms12360 KiB


#include <bits/stdc++.h>

#define int long long

using namespace std;
const int N=1e5+100;
vector<int> g[N];
bool vis[N];
int dep[N];
int sum[N];
int a[N];
int n,ans,nn;
void dfs2(int u,int p)
{
    vis[u]=1;
    for(auto x:g[u]){
        if(x==p)continue;
        dep[x]=dep[u]+1;
        dfs2(x,u);
        sum[u]+=sum[x];
        a[u]+=a[x];
    }
    sum[u]+=dep[u];
}
void dfs(int u,int p,int ann)
{
    vis[u]=1;
    ans+=ann-(nn);
    //cout<<u<<" "<<ann<<endl;
    ans+=1;
    for(auto x:g[u]){
        if(x==p)continue;
        dfs(x,u,ann+(nn-a[x])-a[x]);
    }
}
void solve()
{
    int m,ann=0;
    cin>>n>>m;
    if(m>n-1)assert(0);
    for(int i=1;i<=n;i++)a[i]=1;
    while(m--){
        int a,b;
        cin>>a>>b;
        g[a].push_back(b);
        g[b].push_back(a);
    }
    for(int i=1;i<=n;i++){
        if(!vis[i]){
            dfs2(i,i);
        }
    }
    memset(vis,0,sizeof(vis));
    for(int i=1;i<=n;i++){
        if(!vis[i]){
            nn=a[i];
//            cout<<nn<<" "<<sum[i]<<endl;
            dfs(i,i,sum[i]);
        }
    }
    cout<<ans<<endl;
}

main()
{
    int t=1;
//    cin>>t;
    while(t--)solve();
}

컴파일 시 표준 에러 (stderr) 메시지

count_triplets.cpp: In function 'void solve()':
count_triplets.cpp:40:11: warning: unused variable 'ann' [-Wunused-variable]
   40 |     int m,ann=0;
      |           ^~~
count_triplets.cpp: At global scope:
count_triplets.cpp:66:1: warning: ISO C++ forbids declaration of 'main' with no type [-Wreturn-type]
   66 | main()
      | ^~~~
#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...