#include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ld = long double; #define all(v) v.begin(), v.end() #define rep(i, n) for (ll i = 0; i < n; ++i) #define rep2(i, n, m) for (ll i = n; i <= m; ++i) #define rep3(i, n, m) for (ll i = n; i >= m; --i) template using pqg = priority_queue, greater>; template using pq = priority_queue; template inline bool chmax(S &a, T b) { if (a < b) { a = b; return true; } return false; } template inline bool chmin(S &a, T b) { if (a > b) { a = b; return true; } return false; } int main() { int n, s, t; cin >> n >> s >> t; --s, --t; vector a(n); rep(i, n) cin >> a[i]; auto dis = [&](int x, int y) { return min((x - y + n) % n, (y - x + n) % n); }; ll p1 = 0, tot = accumulate(all(a), 0LL); vector even; rep(i, n) { int ds = dis(s, i), dt = dis(t, i); if (ds <= dt) { p1 += a[i]; if (ds == dt) even.push_back(a[i]); } } if (even.size() == 2) p1 -= min(even[0], even[1]); cout << 2 * p1 - tot << endl; return 0; }