제출 #1041417

#제출 시각아이디문제언어결과실행 시간메모리
1041417HappyCapybara악어의 지하 도시 (IOI11_crocodile)C++17
0 / 100
1104 ms262144 KiB
#include "crocodile.h" #include<bits/stdc++.h> using namespace std; int travel_plan(int N, int M, int R[][2], int L[], int K, int P[]){ vector<vector<pair<int,int>>> g(N); for (int i=0; i<M; i++){ g[R[i][0]].push_back({R[i][1], L[i]}); g[R[i][1]].push_back({R[i][0], L[i]}); } vector<pair<int,int>> v(N, {pow(10, 9)+1, pow(10, 9)+1}); priority_queue<pair<int,int>> pq; for (int i=0; i<K; i++) pq.push({0, P[i]}); vector<bool> seen(N, false); while (!pq.empty()){ int d = -pq.top().first, cur = pq.top().second; pq.pop(); if (seen[cur]) continue; //cout << cur << " " << d << "\n"; if (cur == 0) return d; for (pair<int,int> next : g[cur]){ if (d + next.second < v[next.first].first){ v[next.first].second = v[next.first].first; v[next.first].first = d + next.second; } else if (d + next.second < v[next.first].second) v[next.first].second = d + next.second; if (v[next.first].second < pow(10, 9)+1) pq.push({-v[next.first].second, next.first}); } } return N; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...