제출 #941327

#제출 시각아이디문제언어결과실행 시간메모리
941327Icelast경주 (Race) (IOI11_race)C++17
컴파일 에러
0 ms0 KiB
#include <iostream> #include <bits/stdc++.h> #define ll long long using namespace std; const ll maxn = 5*1e5+5, INF = 4e18+9; int n, k; vector<pair<ll, ll>> adj[maxn]; void inp(){ cin >> n >> k; ll u, v, w; for(int i = 1; i < n; i++){ cin >> u >> v >> w; u++; v++; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } } map<ll, ll> f[maxn]; ll dr[maxn], er[maxn]; void glen(int u, int p, ll d, int e){ dr[u] = d; er[u] = e; for(auto it : adj[u]){ int v = it.first; ll w = it.second; if(v == p) continue; glen(v, u, d+w, e+1); } } ll ans = INF; void merg(int u, int v){ if(f[u].size() < f[v].size()){ swap(f[u], f[v]); } for(auto it : f[v]){ if(f[u].find(k-it.first+2*dr[u]) == f[u].end()) continue; ans = min(ans, it.second+f[u][k-it.first+2*dr[u]]-2*er[u]); } for(auto it : f[v]){ if(f[u].find(it.first) == f[u].end()){ f[u][it.first] = it.second; continue; } f[u][it.first] = min(f[u][it.first], it.second); } } void dfs(int u, int p){ f[u][dr[u]] = er[u]; for(auto it : adj[u]){ int v = it.first; ll w = it.second; if(v == p) continue; dfs(v, u); merg(u, v); } // cout << u << " " << er[u] << "\n"; // for(auto it : f[u]){ // cout << it.first-dr[u] << " " << it.second-er[u] << "\n"; // } // cout << "\n"; } void solve(){ glen(1, 1, 0, 0); dfs(1, 1); if(ans == INF) ans = -1; cout << ans; } int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); inp(); solve(); }

컴파일 시 표준 에러 (stderr) 메시지

race.cpp: In function 'void dfs(int, int)':
race.cpp:50:12: warning: unused variable 'w' [-Wunused-variable]
   50 |         ll w = it.second;
      |            ^
/usr/bin/ld: /tmp/ccGVHris.o: in function `main':
race.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccdetVEo.o:grader.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccdetVEo.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