제출 #1321226

#제출 시각아이디문제언어결과실행 시간메모리
1321226aryanVoting Cities (NOI22_votingcity)C++20
20 / 100
6 ms708 KiB
#include<bits/stdc++.h> using namespace std; using i64 = long long; int main(){ ios_base::sync_with_stdio(false); cin.tie(NULL); int n,e,k; cin >> n >> e >> k; vector<int> good; for(int i = 0;i < k;i++){ int x; cin >> x; good.push_back(x); } vector<vector<pair<int,int>>> adj(n); for(int i = 0;i < e;i++){ int u,v,w; cin >> u >> v >> w; adj[v].push_back({u,w}); } const i64 inf = 1e18; vector<i64> dist(n,inf); priority_queue<pair<i64,int>,vector<pair<i64,int>>,greater<pair<i64,int>>> pq; for(int &e : good){ pq.push({0LL,e}); dist[e] = 0LL; } while(!pq.empty()){ int u = pq.top().second; i64 di = pq.top().first; pq.pop(); if(di > dist[u]) continue; for(auto pp : adj[u]){ int v = pp.first; int w = pp.second; if((i64) w + di < dist[v]){ pq.push({w + di,v}); dist[v] = w + di; } } } int q; cin >> q; while(q --){ int s; cin >> s; int p; cin >> p >> p >> p >> p >> p; cout << (dist[s] == inf ? -1 : dist[s]) << '\n'; } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...