#include <bits/stdc++.h>
#define ll long long
#define pb push_back
#define endl '\n'
#define Valerian void
#define Valerian_or_Habil ios::sync_with_stdio(false); cin.tie(0);
using namespace std;
Valerian solve(){
ll n;
cin >> n;
ll sl, sc, el, ec;
cin >> sl >> sc >> el >> ec;
vector<ll> l(n + 1);
for(int i = 1; i <= n; i++) cin >> l[i];
if(sl == el){
ll res = abs(sc - ec);
if(n == 2){
ll other = (sl == 1 ? 2 : 1);
ll to_other = 1 + abs(min(sc, l[other] + 1) - min(ec, l[other] + 1));
res = min(res, to_other + 1);
}
cout << res << endl;
}
else{
ll res1 = 1 + abs(min(sc, l[el] + 1) - ec);
ll res2;
if(sl < el) res2 = (l[sl] + 1 - sc) + 1 + (ec - 1);
else res2 = (sc - 1) + 1 + (l[el] + 1 - ec);
ll res3 = 1 + abs(sc - min(ec, l[sl] + 1)) + 1;
cout << min({res1, res2, res3}) << endl;
}
}
int main(){
Valerian_or_Habil;
solve();
return 0;
}