제출 #1286718

#제출 시각아이디문제언어결과실행 시간메모리
1286718ian_otoniRace (IOI11_race)C++20
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; vector<vector<pair<int, int>>> adj; vector<int> sum_root_to_i; vector<int> distance_root_to_i; int ans = 999999; void pre_process(int node, int father, int sum, int distance){ sum_root_to_i[node] = sum; distance_root_to_i[node] = distance; for(auto p : adj[node]){ if(p.first!=father) pre_process(p.first, node, sum+p.second, distance+1); } } map<int, int> solve(int node, int p, int k){ //k = sum_root_to_i[a] + sum_root_to_i[b] - 2*sum_root_to_i[u] //sum_root_to_i[b] = k - sum_root_to_i[a] + 2*sum_root_to_i[u] map<int, int> map_n; //soma, distancia for(const auto &[son, other] : adj[node]){ if(son!=p){ map<int, int> map_s = solve(son, node, k); if(map_s.find(k+sum_root_to_i[node])!=map_s.end()) ans = min(ans, map_s[k+sum_root_to_i[node]]-distance_root_to_i[node]); if(map_s.size()>=map_n.size()) swap(map_n, map_s); for(const auto &[sum, dist] : map_s){ int target = k - sum + 2*sum_root_to_i[node]; if(map_n.find(target)!=map_n.end()) ans = min(ans, dist+map_n[target]-2*distance_root_to_i[node]); } for(const auto &[sum, dist] : map_s){ if(map_n.find(sum)==map_n.end()) map_n[sum] = dist; else map_n[sum] = min(map_n[sum], dist); } } } if(map_n.find(sum_root_to_i[node])!=map_n.end()) map_n[sum_root_to_i[node]] = min(map_n[sum_root_to_i[node]], distance_root_to_i[node]); else map_n[sum_root_to_i[node]] = distance_root_to_i[node]; return map_n; } int best_path(int N, int K, int H[][2], int L[]){ ans = 999999; adj.assign(N, vector<pair<int, int>>()); sum_root_to_i.assign(N, 0); distance_root_to_i.assign(N, 0); for(int i=0; i<N-1; i++){ int u = H[i][0]; int v = H[i][1]; int w = L[i]; adj[u].push_back({v, w}); adj[v].push_back({u, w}); } pre_process(0, -1, 0, 0); solve(0, -1, K); if(ans==999999) return -1; return ans; } int main(){ }

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

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