Submission #244635

#TimeUsernameProblemLanguageResultExecution timeMemory
244635kimbj0709Toll (BOI17_toll)C++14
8 / 100
3087 ms8696 KiB
#include<bits/stdc++.h> using namespace std; #define int long long #define maxn 50050 #define f first #define s second int32_t main(){ ios::sync_with_stdio(0); cin.tie(0);cout.tie(0); int k,no_of_vertex,no_of_edge,no_of_query; int input1,input2,input3; cin >> k >> no_of_vertex >> no_of_edge >> no_of_query; vector<vector<pair<int,int> > > adj(maxn); for(int i=0;i<no_of_edge;i++){ cin >> input1 >> input2 >> input3; adj[input1].push_back({input2,input3}); } for(int i=0;i<no_of_query;i++){ cin >> input1 >> input2; vector<int> dist(maxn,INT_MAX); priority_queue<pair<int,int>,vector<pair<int,int> >,greater<pair<int,int> > > q1; dist[input1] = 0; q1.push({0,input1}); while(q1.size()!=0){ pair<int,int> a = q1.top(); q1.pop(); for(auto j:adj[a.s]){ if(dist[j.f]>a.f+j.s){ dist[j.f] = a.f+j.s; q1.push({dist[j.f],j.f}); } } } if(dist[input2]==INT_MAX){ cout << -1 << "\n"; } else{ cout << dist[input2] << "\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...