結果
問題 | No.1150 シュークリームゲーム(Easy) |
ユーザー |
![]() |
提出日時 | 2020-08-07 23:29:38 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 45 ms / 2,000 ms |
コード長 | 1,077 bytes |
コンパイル時間 | 768 ms |
コンパイル使用メモリ | 89,636 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-25 00:49:45 |
合計ジャッジ時間 | 3,295 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 43 |
ソースコード
#include<iostream>#include<iomanip>#include<cmath>#include<string>#include<cstring>#include<vector>#include<list>#include<algorithm>#include<map>#include<set>#include<queue>#include<stack>using namespace std;typedef long long ll;#define fi first#define se second#define mp make_pair#define rep(i, n) for(int i=0;i<n;++i)#define rrep(i, n) for(int i=n;i>=0;--i)const int inf=1e9+7;const ll mod=1e9+7;const ll mod1=998244353;const ll big=1e18;const double PI=2*asin(1);int main() {int N;cin>>N;int S, T;cin>>S>>T;S--;T--;int A[N];for(int i=0;i<N;++i) cin>>A[i];int rx[N], ry[N];for(int i=0;i<N;++i) {rx[i] = min(abs(S-i), N-abs(S-i));ry[i] = min(abs(T-i), N-abs(T-i));}ll ansx = 0, ansy = 0;vector<ll> arr;for(int i=0;i<N;++i) {if(rx[i]>ry[i]) ansy += A[i];else if(rx[i]<ry[i]) ansx += A[i];else arr.push_back(A[i]);}if(arr.size()==1) ansx += arr[0];else if(arr.size()>1){sort(arr.begin(), arr.end());ansy += arr[0];ansx += arr[1];}cout<<ansx-ansy<<endl;}