Submission #1172955

#TimeUsernameProblemLanguageResultExecution timeMemory
1172955CiprianAirplane (NOI23_airplane)C++20
0 / 100
43 ms17476 KiB

#include <bits/stdc++.h>
using namespace std;
#define int long long
int32_t main()
{
    ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,m;
    cin>>n>>m;
    vector<int>h(n+2);
    for(int i=1; i<=n; i++)cin>>h[i];
    vector<pair<int,int>>adj[n+2];
    for(int i=0; i<m; i++){
        int x,y;
        cin>>x>>y;
        int w=abs(h[x]-h[y]);
        adj[x].push_back({-w, y});
        adj[y].push_back({-w,x});
    }priority_queue<pair<int, int>>q;
    vector<int>dist(n+2, -1e9);
    dist[1]=0;
    q.push({0, 1});
    vector<bool> check(n+2, false);
    
    while(!q.empty()){
        auto p=q.top();
        q.pop();
        if(check[p.second])continue;
        check[p.second]=true;
        for(auto e: adj[p.second]){
            if(dist[p.second]+e.first>dist[e.second]){
                dist[e.second]=dist[p.second]+e.first;
                q.push({dist[e.second], e.second});
            }
        }
    }cout<<-dist[n]<<endl;

    return 0;
}
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...