結果
| 問題 |
No.1007 コイン集め
|
| コンテスト | |
| ユーザー |
|
| 提出日時 | 2020-03-06 22:31:17 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 66 ms / 1,500 ms |
| コード長 | 719 bytes |
| コンパイル時間 | 166 ms |
| コンパイル使用メモリ | 82,364 KB |
| 実行使用メモリ | 84,096 KB |
| 最終ジャッジ日時 | 2024-10-14 08:09:47 |
| 合計ジャッジ時間 | 2,102 ms |
|
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 3 |
| other | AC * 19 |
ソースコード
n, k = map(int, input().split())
k -= 1
a = list(map(int, input().split()))
if a[k] == 0:
print(0)
exit()
def findlr(k):
if k < 0 or k >= n:
return 0
if a[k] <= 1:
return a[k]
l, r = k, k
while l - 1 >= 0 and a[l - 1] >= 2:
l -= 1
while r + 1 < n and a[r + 1] >= 2:
r += 1
if l - 1 >= 0 and a[l - 1] >= 1:
l -= 1
if r + 1 < n and a[r + 1] >= 1:
r += 1
ans = 0
for i in range(l, r + 1):
ans += a[i]
return ans
if a[k] == 1:
if findlr(k - 1) > 1 or findlr(k + 1) > 1:
print(max(findlr(k - 1), findlr(k + 1)))
else:
print(max(1, findlr(k - 1) + 1, findlr(k + 1) + 1))
else:
print(findlr(k))