Submission #758957

#TimeUsernameProblemLanguageResultExecution timeMemory
758957Adrian_SoriagaVoting Cities (NOI22_votingcity)C++14
5 / 100
67 ms752 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 INF = 1000000000000000; vector<int> done(nodes,0); vector<ll> distance(nodes,INF); priority_queue<pail, vector<pail>, greater<pail>> pq; pq.push({0,start}); distance[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 (distance[v] > distance[u]+ w) distance[v] = distance[u]+w; pq.push({distance[v],v}); } } return distance[target]; } int main(){ ll n,e,k; cin>>n>>e>>k; int t; cin>>t; vector<pail> adj[n]; for (int i=0; i<e;i++){ ll 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...