답안 #919100

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
919100 2024-01-31T09:16:01 Z vjudge1 Airplane (NOI23_airplane) C++17
0 / 100
136 ms 17484 KB
/******************************************************************************

                              Online C++ Compiler.
               Code, Compile, Run and Debug C++ program online.
Write your code in this editor and press "Run" button to compile and execute it.

*******************************************************************************/

#include <bits/stdc++.h>

using namespace std;
const long int  base = 1e18;
int main()
{
    int n,m;
    cin>>n>>m;
    long long int a[n+1];
    long long int h[n+1];
    for(int i =1;i<=n;i++){
        cin>>a[i];
        h[i]=base;
    }
    vector<int> arr[n+1];
    for(int i =0;i<m;i++){
        int a,b;
        cin>>a>>b;
        arr[a].push_back(b);
        arr[b].push_back(a);
    }
    priority_queue<pair<long long int,int> , vector<pair<long long int,int>>, greater<pair<long long int,int>> > q;
    h[1]=0;
    q.push({0,1});
    while(!q.empty()){
        int u = q.top().second;
        long long int d = q.top().first;
        q.pop();
        if(d!=h[u])continue;
        for(int v : arr[u]){
            // cout<<v<<endl;
            long long int ans = d+max((long long int)0,a[v]-a[u]);
            if(v==n)ans+=max(a[u],a[v]);
            if(ans>=h[v])continue;
            h[v]=ans;
            q.push({ans,v});
        }
    }
    cout<<h[n];
    
}
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 136 ms 17484 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 600 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 600 KB Output is correct
2 Incorrect 0 ms 344 KB Output isn't correct
3 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 1 ms 344 KB Output is correct
2 Incorrect 136 ms 17484 KB Output isn't correct
3 Halted 0 ms 0 KB -