Submission #1287927

#TimeUsernameProblemLanguageResultExecution timeMemory
1287927soumil69Race (IOI11_race)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; // #define int long long const int MX = 2e5+1; map<int,int> col[MX]; vector<pair<int,int>> adj[MX]; int ans = 1e9, k, n; int w[MX]; void insert(int idx,pair<int,int> val){ val.first += w[idx]; val.second += 1; if(val.first == k){ ans = min(ans,val.second); } if(val.first <= k){ if(!col[idx].count(val.first)) col[idx][val.first] = val.second; else col[idx][val.first] = min(val.second, col[idx][val.first]); } } void init(int cur,int par){ for(pair<int,int>& nxt:adj[cur]){ if(nxt.first != par){ w[nxt.first] = nxt.second; init(nxt.first,cur); } } } void dfs(int cur,int par){ if(cur != 1){ insert(cur,{0,0}); } for(pair<int,int>& nxt:adj[cur]){ int nx = nxt.first; if(nx == par) continue; dfs(nx,cur); if(col[cur].size() < col[nx].size()){ swap(col[cur],col[nx]); } for(auto cols:col[nx]){ int val = cols.first; int rem = k+w[cur] - val; if(col[cur].count(rem)){ ans = min(ans,col[cur][rem]+cols.second-1); } insert(cur,cols); } } } vector<int> edg[MX]; signed main(){ cin>>n>>k; for(int i = 0;i<n-1;i++){ int u,v;cin>>u>>v; u++,v++; edg[i] = {u,v,0}; } for(int i = 0;i<n-1;i++){ cin>>edg[i][2]; adj[edg[i][0]].push_back({edg[i][1],edg[i][2]}); adj[edg[i][1]].push_back({edg[i][0],edg[i][2]}); } init(1,0); w[1] = 0; dfs(1,0); if(ans == 1e9) ans = -1; cout<<ans<<endl; return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccs9zAZz.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccRbfs3d.o:race.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccs9zAZz.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