Submission #1294304

#TimeUsernameProblemLanguageResultExecution timeMemory
1294304chaitanyamehtaAirplane (NOI23_airplane)C++20
0 / 100
131 ms20740 KiB
#include<bits/stdc++.h> using namespace std; #define int long long vector<vector<pair<int ,int>>> g; signed main(){ int n ,m; cin>>n>>m; vector<int> a(n + 1); for(int i =1;i<=n;i++)cin>>a[i]; g.resize(n+1); vector<pair<int , int>> edge(m); int ans=0; for(int i =0;i<m;i++){ int u,v , c; cin>>u>>v; c = max(1LL , abs(a[u] - a[v])); g[u].push_back({v , c}); g[v].push_back({u , c}); } priority_queue<pair<int , int> , vector<pair<int , int>> , greater<pair<int , int>>> pq; pq.push({0 , 1}); vector<int> d(n + 1 , LLONG_MAX); d[1] =0; while(!pq.empty()){ int dist = pq.top().first; int u = pq.top().second; pq.pop(); if(d[u] != dist) continue; for(auto v : g[u]){ if(d[v.first] > dist + v.second){ d[v.first] = dist + v.second; pq.push({d[v.first] , v.first}); // cout << v.first << "\n"; } } } cout<<d[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...