Submission #748307

#TimeUsernameProblemLanguageResultExecution timeMemory
748307ToxtaqVoting Cities (NOI22_votingcity)C++17
20 / 100
62 ms860 KiB
#include<bits/stdc++.h> using namespace std; vector<vector<pair<int, int>>>G; vector<int>cities; int main() { int n, m, k; cin >> n >> m >> k; G.resize(n + 1); for(int i = 0;i < k;++i){ int a; cin >> a; a++; cities.push_back(a); } for(int i = 0;i < m;++i){ int u, v, c; cin >> u >> v >> c; u++; v++; G[u].push_back({v, c}); } int q; cin >> q; while(q--){ int s, p1, p2, p3, p4, p5; cin >> s >> p1 >> p2 >> p3 >> p4 >> p5; s++; long long mn = 1e18; priority_queue<pair<long long, int>>pq; vector<long long>dist(n + 1, 1e18); /// from s to other nodes vector<bool>check(n + 1); dist[s] = 0; pq.push({0, s}); while(!pq.empty()){ int cur = pq.top().second; pq.pop(); if(check[cur])continue; check[cur] = 1; for(pair<long long, int>tempo : G[cur]){ long long v = tempo.first, w = tempo.second; if(dist[v] > dist[cur] + w){ dist[v] = dist[cur] + w; pq.push({-dist[v], v}); } } } for(int i : cities){ mn = min(mn, dist[i]); } if(mn == 1e18){ cout << -1 << '\n'; } else cout << mn << '\n'; } }
#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...