Submission #1287950

#TimeUsernameProblemLanguageResultExecution timeMemory
1287950soumil69Race (IOI11_race)C++17
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], dep[MX]; void init(int cur,int par,int dis,int dp){ w[cur] = dis; dep[cur] = dp++; for(pair<int,int>& nxt:adj[cur]){ if(nxt.first != par){ init(nxt.first,cur,dis+nxt.second,dp); } } } void dfs(int cur,int par){ if(w[cur] == k){ ans = min(ans,dep[cur]); } col[cur][w[cur]] = dep[cur]; 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]); } int req = k + 2*w[cur]; for(auto cols:col[nx]){ int rem = req - cols.first; if(col[cur].count(rem)){ ans = min(ans,cols.second+col[cur][rem] - 2*dep[cur]); } if(!col[cur].count(cols.first) || col[cur][cols.first] > cols.second){ col[cur][cols.first] = cols.second; } } } } vector<int> edg[MX]; int32_t best_path(int N, int K, int edges[][2], int weights[]) { n = N; k = K; ans = 1e9; for (int i = 0; i < n - 1; i++) { int u = edges[i][0]; int v = edges[i][1]; u++,v++; adj[u].push_back({v, weights[i]}); adj[v].push_back({u, weights[i]}); } init(1,0,0,0); dfs(1,0); return ans > N ? -1 : ans; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccxdocCP.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