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... |