#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define vi vector<int>
#define si set<int>
#define usi unordered_set<int>
#define sll set<ll>
#define usll unordered_set<ll>
#define vb vector<bool>
#define vll vector<ll>
#define pii pair<int, int>
#define pll pair<ll, ll>
#define vvi vector<vector<int>>
#define vvll vector<vector<ll>>
void solve() {
ll N;
cin >> N;
pll st, en;
cin >> st.first >> st.second >> en.first >> en.second;
--st.first;
--st.second;
--en.first;
--en.second;
vll A(N);
for (int i = 0; i < N; i++) {
cin >> A[i];
A[i]++;
}
ll rightwrap = A[0] - st.second + en.second;
ll leftwrap = st.second + 1 + (A[N - 1] - 1 - en.second);
ll direct = abs(st.second - en.second) + abs(st.first - en.first);
cout << min({rightwrap, leftwrap, direct});
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
solve();
}
# | 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... |