Submission #1129722

#TimeUsernameProblemLanguageResultExecution timeMemory
1129722denislavRace (IOI11_race)C++20
Compilation error
0 ms0 KiB
# include <iostream> # include <vector> # include <map> # include "race.h" # include "grader.cpp" using namespace std; const int INF=1e9; const int MAX=2e5+11; int n,k; vector<pair<int, long long>> adj[MAX]; int sz[MAX]; bool kill[MAX]; void dfs_sz(int curr, int par) { sz[curr]=1; for(pair<int, long long> nxt: adj[curr]) { if(nxt.first==par or kill[nxt.first]) continue; dfs_sz(nxt.first,curr); sz[curr]+=sz[nxt.first]; } } int get_centroid(int curr, int par, int N) { for(pair<int, long long> nxt: adj[curr]) { if(nxt.first==par or kill[nxt.first]) continue; if(sz[nxt.first]*2>N) return get_centroid(nxt.first,curr,N); } return curr; } int ans=INF; map<long long, int> mapi; void add(long long x, int cnt) { if(mapi.find(x)==mapi.end()) mapi[x]=cnt; else mapi[x]=min(mapi[x],cnt); } void dfs_ans(int curr, int par, long long dist, int cnt) { if(mapi.find(k-dist)!=mapi.end()) ans=min(ans,cnt+mapi[k-dist]); for(pair<int, long long> nxt: adj[curr]) { if(nxt.first==par or kill[nxt.first]) continue; dfs_ans(nxt.first,curr,dist+nxt.second,cnt+1); } } void dfs_fill(int curr, int par, long long dist, int cnt) { add(dist,cnt); for(pair<int, long long> nxt: adj[curr]) { if(nxt.first==par or kill[nxt.first]) continue; dfs_fill(nxt.first,curr,dist+nxt.second,cnt+1); } } void cd(int curr) { dfs_sz(curr,-1); curr=get_centroid(curr,-1,sz[curr]); add(0,0); for(pair<int, long long> nxt: adj[curr]) { if(kill[nxt.first]) continue; dfs_ans(nxt.first,curr,nxt.second,1); dfs_fill(nxt.first,curr,nxt.second,1); } mapi.clear(); kill[curr]=1; for(pair<int, long long> nxt: adj[curr]) { if(kill[nxt.first]) continue; cd(nxt.first); } } int best_path(int N, int K, int H[][2], int L[]) { n=N;k=K; for(int i=0;i<n-1;i++) { adj[H[i][0]].push_back({H[i][1],L[i]}); adj[H[i][1]].push_back({H[i][0],L[i]}); } cd(0); if(ans==INF) ans=-1; return ans; } /* 3 3 0 1 1 1 2 1 -1 */

Compilation message (stderr)

/usr/bin/ld: /tmp/ccktbbvj.o: in function `read_input()':
grader.cpp:(.text+0x0): multiple definition of `read_input()'; /tmp/ccP9oQGx.o:race.cpp:(.text+0x220): first defined here
/usr/bin/ld: /tmp/ccktbbvj.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccP9oQGx.o:race.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status