This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
using namespace std;
#include <bits/stdc++.h>
#define int long long
int32_t main()
{
int n;
int sx,sy,ex,ey;
cin>>n;
cin>>sy>>sx>>ey>>ex;
vector<int> l(n);
for(int i=0;i<n;i++)
cin>>l[i];
if(sy>ey)
{
swap(ey,sy);
swap(sx,ex);
}
int ans=0;
if(sy==ey){
ans=abs(sx-ex)+abs(sy-ey);
if(sy!=1)
{
ans=min(ans,sx+l[0]+1-ex+1) ;
}
if(sy!=n)
{
ans=min(ans,l[0]+1-sx+1+ex-1+1) ;
}
if(ey!=n)
{
ans=min(ans,l[0]+1-ex+1+sx-1+1) ;
}
if(ey!=1)
{
ans=min(ans,ex+l[0]+1-sx+1) ;
}
}
if(sy<ey){
ans=abs(sx-ex)+abs(sy-ey);
if(sy!=1)
{
ans=min(ans,sx+l[0]+1-ex-1+abs(sy-ey)+1) ;
}
if(sy!=n)
{
ans=min(ans,l[0]+1-sx+1+ex-1+abs(sy-ey)-1) ;
}
if(ey!=n)
{
ans=min(ans,l[0]+1-ex+1+sx-1+abs(sy-ey)+1) ;
}
if(ey!=1)
{
ans=min(ans,ex+l[0]+1-sx+abs(sy-ey)-1) ;
}
}
cout<<ans;
return 0;
}
# | 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... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |