結果
問題 |
No.1007 コイン集め
|
ユーザー |
![]() |
提出日時 | 2020-03-06 23:13:21 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 43 ms / 1,500 ms |
コード長 | 742 bytes |
コンパイル時間 | 1,527 ms |
コンパイル使用メモリ | 165,892 KB |
実行使用メモリ | 5,248 KB |
最終ジャッジ日時 | 2024-10-14 09:41:35 |
合計ジャッジ時間 | 2,517 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; typedef long long ll; #define INF (long long)(1e9+7) #define REP(i,n) for(ll i = 0; i < n; i++) #define REP1(i,n) for(ll i = 1; i <= n; i++) ll a[200020]; int main(void) { int n, k; ll cntd = 0, cntu = 0, cnt; cin >> n >> k; k--; REP(i, n) cin >> a[i]; if(a[k] == 0) { cout << 0 << endl; return 0; } for(int i = k-1; i >= 0; i--) { if(a[i]==0) break; cntd += a[i]; if(a[i] <= 1) break; } for(int i = k + 1; i < n; i++) { cntu += a[i]; if(a[i] <= 1) break; } if(a[k] == 1) { cnt = max(cntu, cntd) +1; } else { cnt = cntu + cntd + a[k]; } cout << cnt << endl; }