Submission #1294310

#TimeUsernameProblemLanguageResultExecution timeMemory
1294310chaitanyamehtaAirplane (NOI23_airplane)C++20
0 / 100
133 ms20752 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 , c1 , c2; cin>>u>>v; if(u == n){ c1 = max(1LL , a[v]); c2 = max(1LL ,a[v]); g[u].push_back({v , c1}); g[v].push_back({u , c2}); continue; } if(v == n){ c1 = max(1LL , a[u]); c2 = max(1LL ,a[u]); g[u].push_back({v , c1}); g[v].push_back({u , c2}); continue; } if(u == 1){ c1 = max(1LL , a[v]); c2 = max(1LL ,a[v]); g[u].push_back({v , c1}); g[v].push_back({u , c2}); continue; } if(v == 1){ c1 = max(1LL , a[u]); c2 = max(1LL ,a[u]); g[u].push_back({v , c1}); g[v].push_back({u , c2}); continue; } if(a[u]> a[v]){ c1 = 1; } else{ c1 = max(1LL ,abs(a[u] - a[v])); } if(a[v] > a[u]){ c2 = 1; } else{ c2 = max(1LL , abs(a[u]-a[v])); } g[u].push_back({v , c1}); g[v].push_back({u , c2}); } 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...