結果
| 問題 | No.1150 シュークリームゲーム(Easy) |
| コンテスト | |
| ユーザー |
komakoko
|
| 提出日時 | 2026-05-13 00:02:09 |
| 言語 | C++23 (gcc 15.2.0 + boost 1.89.0) |
| 結果 |
WA
|
| 実行時間 | - |
| コード長 | 1,877 bytes |
| 記録 | |
| コンパイル時間 | 6,639 ms |
| コンパイル使用メモリ | 378,084 KB |
| 実行使用メモリ | 7,976 KB |
| 最終ジャッジ日時 | 2026-05-13 00:02:24 |
| 合計ジャッジ時間 | 7,679 ms |
|
ジャッジサーバーID (参考情報) |
judge3_1 / judge2_1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 2 |
| other | AC * 29 WA * 14 |
ソースコード
#include <bits/stdc++.h>
#include <atcoder/all>
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<typename T> bool chmin(T &a, const T &b) {if(a>b) {a=b; return true;} return false;}
template<typename T> bool chmax(T &a, const T &b) {if(a<b) {a=b; return true;} return false;}
template <typename T> void print(const T &a) {cout << a << '\n';}
template <typename T> void print(const vector<T> &v1) {for(int i=0; i<v1.size(); ++i){if(i) {cout << ' ';} cout << v1[i];} cout << '\n';}
template <typename T> void print(const vector<vector<T>> &v2) {for(int i=0; i<v2.size(); ++i) print(v2[i]); cout << '\n';}
void solve() {
ll n; cin >> n;
ll s, t; cin >> s >> t; s--; t--;
vector<ll> 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;
}
komakoko