Submission #124587

#TimeUsernameProblemLanguageResultExecution timeMemory
124587MoNsTeR_CuBe관광 (NOI14_sightseeing)C++17
9 / 25
3533 ms98624 KiB
#include <bits/stdc++.h> using namespace std; const int INF = numeric_limits<int>::max(); signed main(){ ios::sync_with_stdio(false); cin.tie(0); int n, m, q; cin >> n >> m >> q; vector< vector< pair<int, int> > > Graph(n+1); for(int i = 0; i < m; i++){ int a, b, c; cin >> a >> b >> c; Graph[a].push_back(make_pair(b,c)); Graph[b].push_back(make_pair(a,c)); } vector< int > dist(n+1, -INF); priority_queue< pair<int, int>, vector< pair<int, int> >, greater< pair<int, int> > > pq; dist[1] = INF; pq.push(make_pair(INF,1)); while(!pq.empty()){ pair<int, int> pair = pq.top(); pq.pop(); int node = pair.second; int cost = pair.first; if(cost < dist[node]) continue; for(int i = 0; i < (int)Graph[node].size(); i++){ int to = Graph[node][i].first; int price = Graph[node][i].second; if(min(cost, price) > dist[to]){ dist[to] = min(cost, price); pq.push(make_pair(dist[to], to)); } } } for(int i = 0; i < q; i++){ int a; cin >> a; cout << dist[a] << endl; } }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...