Submission #758941

#TimeUsernameProblemLanguageResultExecution timeMemory
758941Adrian_SoriagaVoting Cities (NOI22_votingcity)C++14
0 / 100
8 ms1108 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef pair<ll,ll> pail; ll dij(vector<pail> adj[] , int start, int target,int nodes){ ll l_max = 1000000000000000000; vector<ll> done(nodes,0); vector<ll> dist(nodes,l_max); priority_queue<pail, vector<pail> , greater<pail>> pq; pq.push({0,start}); dist[start] = 0; while(!pq.empty()){ ll u= pq.top().second; pq.pop(); if (done[u]) continue; done[u] =1; for (auto x :adj[u]){ ll v= x.first, w= x.second; if (dist[v] > dist[u]+w){ dist[v] = dist[u]+w; pq.push({dist[v],v}); } } } return dist[target]; } int main(){ int n,e,k; cin>>n>>e>>k; int t; cin>>t; vector<pail> adj[n]; for (int i=0; i<e;i++){ int a,b,w; cin>>a>>b>>w; adj[a].push_back({b,w}); adj[b].push_back({a,w}); } int q; cin>>q; for (int i=0; i<q; i++){ int s; cin>>s; int t_1,t_2,t_3,t_4,t_5; cin>>t_1>>t_2>>t_3>>t_4>>t_5; ll p = dij(adj,s,t,n); if (p ==1000000000000000000 ) cout<<-1<<"\n"; else cout<<p<<"\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...