#include using namespace std; #define int long long #define ii pair #define app push_back #define all(a) a.begin(), a.end() #define bp __builtin_popcountll #define ll long long #define mp make_pair #define f first #define s second #define Time (double)clock()/CLOCKS_PER_SEC #define debug(x) std::cout << #x << ": " << x << '\n'; int solve(vector l, vector r) { auto half = [] (vector a) { int sz = a.size(); int ans = 0; for (int i = 0; i < sz/2; ++i) { ans += a[i]; ans -= a[sz - 1 - i]; } return ans; }; auto mid = [] (vector a) { int sz = a.size(); assert(sz&1); return a[sz/2]; }; if (l.size() % 2 == 0 && r.size() % 2 == 0) { return half(l) + half(r); } else if (l.size() % 2 && r.size() % 2 == 0) { return half(l) + half(r) + mid(l); } else if (l.size() % 2 == 0 && r.size() % 2) { return half(l) + half(r) + mid(r); } else { assert(0); } } signed main() { #ifdef HOME freopen("input.txt", "r", stdin); #else #define endl '\n' ios_base::sync_with_stdio(0); cin.tie(0); #endif int n; cin >> n; int s, t; cin >> s >> t; s--; t--; vector a(n); for (int i = 0; i < n; ++i) cin >> a[i]; vector l, r; for (int i = min(s, t) + 1; i != max(s, t); i++) { l.app(a[i]); } if (s > t) reverse(all(l)); for (int i = (max(s, t) + 1) % n; i != min(s, t); i = (i + 1) % n) { r.app(a[i]); } if (s < t) reverse(all(r)); auto shift = [] (vector a) { vector ans; for (int i = 1; i < a.size(); ++i) ans.app(a[i]); return ans; }; auto rev = [] (vector a) { reverse(all(a)); return a; }; if (l.size() % 2 && r.size() % 2) { cout << max(l[0] - solve(rev(shift(l)), rev(r)), r[0] - solve(rev(l), rev(shift(r)))) + a[s] - a[t] << endl; } else { cout << solve(l, r) + a[s] - a[t] << endl; } }