結果
問題 | No.1150 シュークリームゲーム(Easy) |
ユーザー |
![]() |
提出日時 | 2020-08-07 22:27:08 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 44 ms / 2,000 ms |
コード長 | 1,215 bytes |
コンパイル時間 | 1,813 ms |
コンパイル使用メモリ | 170,428 KB |
実行使用メモリ | 6,944 KB |
最終ジャッジ日時 | 2024-09-24 20:55:47 |
合計ジャッジ時間 | 4,022 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge1 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 |
other | AC * 43 |
ソースコード
#include<bits/stdc++.h> using namespace std; #define int long long #define REP(i,m,n) for(int i=(m);i<(n);i++) #define rep(i,n) REP(i,0,n) #define pb push_back #define all(a) a.begin(),a.end() #define rall(c) (c).rbegin(),(c).rend() #define mp make_pair #define endl '\n' #define vec vector<ll> #define mat vector<vector<ll> > #define fi first #define se second typedef long long ll; typedef pair<ll,ll> pll; typedef long double ld; const ll inf=1e9+7; const ll mod=998244353; signed main(){ ll n;cin>>n; ll s,t;cin>>s>>t; s--;t--; vector<ll>a(n); ll cnt=0; ll sum=0; rep(i,n){ cin>>a[i]; sum+=a[i]; } if(n%2){ rep(i,n){ ll x=min(abs(i-s),n-abs(i-s)); ll y=min(abs(i-t),n-abs(i-t)); if(x<=y)cnt+=a[i]; } }else{ vector<ll>b(0); rep(i,n){ ll x=min(abs(i-s),n-abs(i-s)); ll y=min(abs(i-t),n-abs(i-t)); if(x<y)cnt+=a[i]; else if(x==y){ b.pb(a[i]); } //cout<<x<<' '<<y<<endl; } if(b.size()){ cnt+=max(b[0],b[1]); } } //cout<<cnt<<endl; cout<<2*cnt-sum<<endl; }