結果
問題 | No.1007 コイン集め |
ユーザー |
|
提出日時 | 2020-03-06 22:37:35 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
AC
|
実行時間 | 47 ms / 1,500 ms |
コード長 | 778 bytes |
コンパイル時間 | 1,991 ms |
コンパイル使用メモリ | 163,584 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-14 08:58:37 |
合計ジャッジ時間 | 3,063 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 19 |
ソースコード
#include <bits/stdc++.h> using namespace std; #define int long long int n, k; int a[100010]; signed main(){ cin >> n >> k; for(int i = 0;i < n;i++){ cin >> a[i]; } k--; vector<int> lv, rv; int ans = 0; for(int i = 0;i < k;i++){ if(a[i] <= 1) lv.clear(); if(a[i] > 0) lv.push_back(a[i]); } int left = 0; int right = 0; int noko = 0; if(lv.size() > 0){ for(int i = 0;i < lv.size();i++){ left += lv[i]; } } for(int i = n-1;i > k;i--){ if(a[i] <= 1) rv.clear(); if(a[i] > 0) rv.push_back(a[i]); } if(rv.size() > 0){ for(int i = 0;i < rv.size();i++){ right += rv[i]; } } if(a[k] == 0){ cout << 0 << endl; }else if(a[k] == 1){ cout << max(left, right)+1 << endl; }else{ cout << left + right + a[k] << endl; } return 0; }