Submission #1315149

#TimeUsernameProblemLanguageResultExecution timeMemory
1315149jokukCommuter Pass (JOI18_commuter_pass)C++20
0 / 100
88 ms10332 KiB
#include<iostream> #include<vector> #include<queue> using namespace std; int main() { cin.tie(nullptr)->sync_with_stdio(false); int n,r; cin>>n; cin>>r; vector<pair<int,int>> s; vector<int> dist; vector<vector<pair<int,int>>> adj(n); int temp1,temp2; cin>>temp1; cin>>temp2; s.push_back({temp1,temp2}); cin>>temp1; cin>>temp2; s.push_back({temp1,temp2}); for(int i=0;i<r;i++) { int u,v,w; cin>>u; cin>>v; cin>>w; u--; v--; adj[u].push_back({v,w}); adj[v].push_back({u,w}); } /*for(int i=0;i<n;i++) { for(int j=0;j<adj[i].size();j++) { cout<<i<<" "<<adj[i][j].first<<" "; } cout<<"\n"; }*/ ////////////////////////////////////////////////////////// priority_queue<pair<int,int>,vector<pair<int,int>>,greater<pair<int,int>> > q; dist.resize(n,1e9+7); //////////////////////////////////////////////////////////////////// dist.assign(n,1e9+7); dist[s[1].first-1]=0; q.push({0,s[1].first-1}); while(!q.empty()) { int a,b; a=q.top().first; b=q.top().second; q.pop(); for(pair<int,int>& x:adj[b]) { if(dist[x.first]<=x.second+a) { continue; } dist[x.first] = x.second+a; q.push({dist[x.first], x.first}); } } int ans; ans=dist[s[1].second-1]; cout<<ans; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...