Submission #1208951

#TimeUsernameProblemLanguageResultExecution timeMemory
1208951MasterDebaterRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include<bits/stdc++.h> using namespace std; #define ll long long const int N=2e5+5; int n,k,ai,bi,ci,mxd,par[N],sz[N],len[N]; ll ans; vector<int>v[N]; bool bio[N]; int precompute(int node,int parent){ sz[node]=1; for(int i=0;i<(int)v[node].size();i++)if(!bio[v[node][i]] and v[node][i]!=parent)sz[node]+=precompute(v[node][i],node); return sz[node]; } void solve(int node,int parent,int depth,bool b){ if(depth>k)return; mxd=max(mxd,depth); if(b)len[depth]++; else ans+=len[k-depth]; for(int i=0;i<(int)v[node].size();i++){ if(v[node][i]!=parent and !bio[v[node][i]]) solve(v[node][i],node,depth+1,b); } return; } int FindCentroid(int node,int parent,int vel){ for(int i=0;i<(int)v[node].size();i++)if(v[node][i]!=parent and !bio[v[node][i]]) if(sz[v[node][i]]>vel/2)return FindCentroid(v[node][i],node,vel); return node; } void CentroidDecompostition(int node){ precompute(node,-1); int centroid=FindCentroid(node,-1,sz[node]); mxd=0; len[0]=1; for(int i=0;i<(int)v[centroid].size();i++)if(!bio[v[centroid][i]]){ solve(v[centroid][i],centroid,1,0); solve(v[centroid][i],centroid,1,1); } for(int i=0;i<=mxd;i++)len[i]=0; node=centroid; bio[node]=1; for(int i=0;i<(int)v[node].size();i++) { int child=v[node][i]; if (bio[child])continue; CentroidDecompostition(child); } return; } int main(){ ios_base::sync_with_stdio(false); cin.tie(0); cin>>n>>k; for(int i=0;i<n;i++)par[i]=-1; for(int i=1;i<n;i++){ cin>>ai>>bi>>ci,ai--,bi--; v[ai].push_back(bi); v[bi].push_back(ai); } CentroidDecompostition(0); cout<<ans<<'\n'; return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccJy8Phj.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccFqnHyv.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccJy8Phj.o: in function `main':
grader.cpp:(.text.startup+0x28): undefined reference to `best_path(int, int, int (*) [2], int*)'
collect2: error: ld returned 1 exit status