#include #include using namespace std; typedef long long ll; typedef unsigned long long ull; typedef long double ld; #define rep(i, n) for(ll i = 0; i < (ll)(n); ++i) #define rep1(i, n) for(ll i = 1; i <= (ll)(n); ++i) #define rrep(i, n) for(ll i = (ll)(n) - 1; i >= 0; --i) #define rrep1(i, n) for(ll i = (ll)(n); i >= 1; --i) #define all(x) x.begin(), x.end() #define rall(x) x.rbegin(), x.rend() #ifdef DEBUG #define dbg if(true) #else #define dbg if(false) #endif template bool chmin(T &a, const T &b) {if(a>b) {a=b; return true;} return false;} template bool chmax(T &a, const T &b) {if(a void print(const T &a) {cout << a << '\n';} template void print(const vector &v1) {for(int i=0; i void print(const vector> &v2) {for(int i=0; i> n; ll s, t; cin >> s >> t; s--; t--; vector A(n*2); rep(i, n) cin >> A[i]; rep(i, n) A[i+n] = A[i]; if(s > t) swap(s, t); ll s_sum = A[s]; ll t_sum = A[t]; rep(i, (t - s - 1) / 2) s_sum += A[s + 1 + i]; rep(i, (t - s - 1) / 2) t_sum += A[t - 1 - i]; rep(i, (n + s - t - 1) / 2) t_sum += A[t + 1 + i]; rep(i, (n + s - t - 1) / 2) s_sum += A[n + s - 1 - i]; ll mid_l = 0; ll mid_r = 0; if((t - s + 1) % 2 == 1) mid_l = A[(t + s) / 2]; if((n + s - t - 1) % 2 == 1) mid_r = A[(t + s + n) / 2]; s_sum += max(mid_l, mid_r); t_sum += min(mid_l, mid_r); cout << s_sum - t_sum << endl; return; } int main() { cin.tie(nullptr); ios::sync_with_stdio(false); int test_case = 1; // cin >> test_case; // cout << std::setprecision(15); while (test_case--) { solve(); } return 0; }