結果
問題 | No.1007 コイン集め |
ユーザー |
![]() |
提出日時 | 2020-03-06 22:14:09 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 14 ms / 1,500 ms |
コード長 | 1,559 bytes |
コンパイル時間 | 2,411 ms |
コンパイル使用メモリ | 195,176 KB |
最終ジャッジ日時 | 2025-01-09 05:17:16 |
ジャッジサーバーID (参考情報) |
judge5 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; using ld = long double; using vl = vector<ll>; template<class T> using vc = vector<T>; template<class T> using vvc = vector<vector<T>>; const ll MOD = 1e9 + 7; const ll INF = 1e16; const ld EPS = 1e-11; const ld PI = acos(-1.0L); #define eb emplace_back #define all(x) (x).begin(), (x).end() #define rep(i, n) for (ll i = 0; i < (n); i++) #define repr(i, n) for (ll i = (n)-1; i >= 0; i--) #define repe(i, l, r) for (ll i = (l); i < (r); i++) #define reper(i, l, r) for (ll i = (r)-1; i >= (l); i--) template<class T> bool chmax(T &a, const T &b) { if (a<b) { a=b; return 1; } return 0; } template<class T> bool chmin(T &a, const T &b) { if (b<a) { a=b; return 1; } return 0; } void init() {cin.tie(0);ios::sync_with_stdio(false);cout << fixed << setprecision(15);} //--------------------------------------------------------------------------------// int main() { init(); ll N, K; cin >> N >> K; vl A(N); rep(i, N) cin >> A[i]; K--; ll ans = 0; if(A[K]==0){ cout << 0 << endl; return 0; } ll l = K - 1, r = K + 1, lsum = 0, rsum = 0; while(l>=0){ if(A[l]<=1){ lsum += A[l]; break; } lsum += A[l]; l--; } while(r<N){ if(A[r]<=1){ rsum += A[r]; break; } rsum += A[r]; r++; } if(A[K]==1){ cout << max(lsum, rsum) + 1 << endl; }else{ cout << lsum + rsum + A[K] << endl; } }