# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
893388 | vjudge1 | Airplane (NOI23_airplane) | C++17 | 485 ms | 64880 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
#include<bits/stdc++.h>
#define taskname "ONEPIECE"
#define el '\n'
#define fi first
#define sc second
#define pii pair<int, int>
#define all(v) v.begin(), v.end()
#define int ll
using namespace std;
using ll=long long;
using ull=unsigned long long;
using ld=long double;
#define Faster ios_base::sync_with_stdio(false);cin.tie(0);cout.tie(0);
using namespace std;
const int maxn=1e6+2;
const int mod=1e9+7;
const int inf=1e15;
int n,m,a[maxn],dp1[maxn],dp2[maxn],d[maxn],vis[maxn];
vector<int> adj[maxn];
void dijkstra(int x)
{
priority_queue<pii> pq;
pq.push({0,x});
for(int i=1;i<=n;i++) vis[i]=0;
while(!pq.empty())
{
int x=pq.top().sc;
int dis=-pq.top().fi;
// cout<<"!"<<x<<" "<<dis<<"\n";
pq.pop();
if(vis[x]) continue;
d[x]=dis;
vis[x]=1;
for(int y:adj[x])
{
pq.push({-max(d[x]+1,a[y]),y});
}
}
}
signed main()
{
if (fopen(taskname".INP","r"))
{
freopen(taskname".INP","r",stdin);
freopen(taskname".OUT","w",stdout);
}
Faster
cin>>n>>m;
for(int i=1;i<=n;i++) cin>>a[i];
for(int i=1;i<=m;i++)
{
int u,v;
cin>>u>>v;
adj[u].push_back(v);
adj[v].push_back(u);
}
dijkstra(1);
for(int i=1;i<=n;i++) dp1[i]=d[i];
dijkstra(n);
for(int i=1;i<=n;i++) dp2[i]=d[i];
int res=inf;
for(int i=1;i<=n;i++)
{
res=min(res,2*max(dp1[i],dp2[i]));
}
for(int i=1;i<=n;i++)
{
for(int j:adj[i])
{
res=min(res,2*max(dp1[i],dp2[j])+1);
}
}
cout<<res<<"\n";
// for(int i=1;i<=n;i++)
// {
// cout<<i<<":"<<dp1[i]<<" "<<dp2[i]<<"\n";
// }
}
Compilation message (stderr)
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |