Submission #126427

#TimeUsernameProblemLanguageResultExecution timeMemory
126427jaaguptammeRace (IOI11_race)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define pii pair<int,int> #include "race.h" using namespace std; const int N=200005; vector<pii>g[N]; map<int,int>*mp[N]; int dist[N],sz[N],dep[N]; int res=INT_MAX; int k; void dfs(int u,int prev){ sz[u]=1; int mxsz=-1,mxn=-1; for(auto el:g[u]){ int v=el.first; int c=el.second; if(v==prev)continue; dist[v]=dist[u]+c; dep[v]=dep[u]+1; dfs(v,u); sz[u]+=sz[v]; if(sz[v]>mxsz){ mxsz=sz[v]; mxn=v; } } if(mxsz!=-1)mp[u]=mp[mxn]; else mp[u]=new map<int,int>(); (*mp[u])[dist[u]]=dep[u]; if((*mp[u]).count(dist[u]-k)){ int node=(*mp[u])[dist[u]-k]; res=min(res,abs(node-dep[u])); } for(auto E:g[u]){ int v=E.first; if(v==prev ||v==mxn)continue; for(auto el:(*mp[v])){ int nx=el.first; int de=el.second; if((*mp[u]).count(nx-k)){ int node=(*mp[u])[nx-k]; res=min(res,abs(de-dep[u])+abs(dep[u]-node)); } if((*mp[u]).count(nx)){ (*mp[u])[nx]=min((*mp[u])[nx],de); }else (*mp[u])[nx]=de; } } } int best_path(int N, int K, int H[][2], int L[]) { k=K; for(int i=0;i<N-1;i++){ int u,v,c;u=H[i][0]; v=H[i][1]; c=L[i]; g[u].push_back({v,c}); g[v].push_back({u,c}); } dep[1]=0; dfs(1,N); if(res!=INT_MAX)return res; else return -1; } int main(){ int n=4; int k=3; int h[][2]={{0,1},{1,2},{1,3}}; int l[]={1,2,4}; std::cout<<best_path(n,k,h,l)<<'\n'; }

Compilation message (stderr)

/tmp/cczR2m73.o: In function `main':
race.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccoZs5Bt.o:grader.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status