제출 #399261

#제출 시각아이디문제언어결과실행 시간메모리
399261fvogel499악어의 지하 도시 (IOI11_crocodile)C++14
컴파일 에러
0 ms0 KiB
#include <iostream> #include <vector> #include <queue> #include <algorithm> using namespace std; #define pii pair<int, int> #define MAX_N 50000 #define MAX_M 10000000 #define inf 1e9 #define int long long int dist [MAX_N]; int secondDist [MAX_N]; bool proc [MAX_N]; struct Compare { bool operator()(int a, int b) { return (secondDist[a] > secondDist[b]); } }; int travel_plan(int nbNodes, int nbEdges, int corridors [MAX_M][2], int travelTime [MAX_M], int nbExits, int exits [MAX_N]) { vector<vector<pii>> graph(nbNodes); for (int i = 0; i < nbEdges; i++) { graph[corridors[i][0]].push_back(pii(corridors[i][1], travelTime[i])); graph[corridors[i][1]].push_back(pii(corridors[i][0], travelTime[i])); } for (int i = 0; i < nbNodes; i++) { dist[i] = inf; secondDist[i] = inf; proc[i] = false; } priority_queue<int, vector<int>, Compare> q; for (int i = 0; i < nbExits; i++) { q.push(exits[i]); dist[exits[i]] = 0; secondDist[exits[i]] = 0; } while (!q.empty()) { int curNode = q.top(); q.pop(); if (proc[curNode]) continue; proc[curNode] = true; for (pii newEdge : graph[curNode]) { int newNode = newEdge.first; int newWeight = newEdge.second; int newDist = secondDist[curNode]+newWeight; if (proc[newNode] or newDist > secondDist[newNode]) continue; if (newDist <= dist[newNode]) { secondDist[newNode] = dist[newNode]; dist[newNode] = newDist; } else if (newDist <= secondDist[newNode]) { secondDist[newNode] = newDist; } else { cerr << "ISSUE-1"; } q.push(newNode); } } int maxDist = 0; for (int i = 0; i < nbNodes; i++) { maxDist = max(maxDist, secondDist[i]); } return maxDist; } // int32_t main() { // int nbNodes, nbEdges; // cin >> nbNodes >> nbEdges; // simul // vector<vector<int>> corridors(nbEdges, vector<int>(2)); // for (int i = 0; i < nbEdges; i++) cin >> corridors[i][0] >> corridors[i][1]; // simul // vector<int> travelTime(nbEdges); // for (int i = 0; i < nbEdges; i++) cin >> travelTime[i]; // simul // int nbExits; // cin >> nbExits; // vector<int> exits(nbExits); // for (int i = 0; i < nbExits; i++) cin >> exits[i]; // cout << travel_plan(nbNodes, nbEdges, corridors, travelTime, nbExits, exits); // }

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

/tmp/ccZIzG6I.o: In function `main':
grader.cpp:(.text.startup+0x32): undefined reference to `travel_plan(int, int, int (*) [2], int*, int, int*)'
collect2: error: ld returned 1 exit status