Submission #1321224

#TimeUsernameProblemLanguageResultExecution timeMemory
1321224aryanVoting Cities (NOI22_votingcity)C++20
0 / 100
2 ms572 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; pq.pop(); i64 di = pq.top().first; 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...