#include<bits/stdc++.h>
using namespace std;
const int N = 1e6 + 7;
#define int long long
int up(int x1, int y1, int x2, int y2){
return abs(x2 - x1) + abs (y2 - y1);
}
int arr[N];
signed main(){
int n; cin >> n;
int x1,y1,x2,y2;
cin >> x1 >> y1 >> x2 >> y2;
for(int i = 0; i < n; i++){
cin >> arr[i];
}
if(n == 1)cout << 0 <<endl;
else{
int X = up(x1,y1,x2,y2);
int Y = 1e9;
if(x1 != n)
Y = (arr[0] + 2) - y1 + up(x1 + 1, 1, x2, y2);
int T = 1e9;
if(x1!=1)T=y1+up(x1-1,arr[0]+1,x2,y2);
else T=1+y1+up(1,arr[0]+1,x2,y2);
int Z = n - x1;
Z = Z + 1 + min(up(n - 1, 1, x2, y2), up(n - 1, arr[0] + 1, x2, y2));
X = min({X, Y, T,Z});
cout << X << '\n';
}
}
# | 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... |