Submission #886020

#TimeUsernameProblemLanguageResultExecution timeMemory
886020vjudge1Airplane (NOI23_airplane)C++17
0 / 100
173 ms15844 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long #define endl "\n" #define all(aa) aa.begin(), aa.end() int main(){ int n, m; cin>>n>>m; vector<int> v(n); vector<vector<int>> g(n); for(auto &e:v) cin>>e; for(int i=0; i<m; i++){ int a, b; cin>>a>>b; a--; b--; g[a].push_back(b); g[b].push_back(a); } vector<int> ans(n, -1), ans2(n, -1); priority_queue<pair<int, int>> pq; pq.push({0, 0}); while(pq.size()){ auto [t, cur]=pq.top(); pq.pop(); if(ans[cur]!=-1) continue; t=ans[cur]=-t; for(auto ch:g[cur]){ pq.push({-max(t, v[ch]), ch}); } } pq.push({0, n-1}); while(pq.size()){ auto [t, cur]=pq.top(); pq.pop(); if(ans2[cur]!=-1) continue; t=ans2[cur]=-t; for(auto ch:g[cur]){ pq.push({-max(t, v[ch]), ch}); } } int res=INT_MAX; for(int i=0; i<n; i++){ res=min(res, max(ans[i], ans2[i])*2); } cout<<res<<endl; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...