結果
| 問題 |
No.2217 Suffix+
|
| コンテスト | |
| ユーザー |
meruuu61779999
|
| 提出日時 | 2023-02-17 21:39:53 |
| 言語 | PyPy3 (7.3.15) |
| 結果 |
AC
|
| 実行時間 | 228 ms / 2,000 ms |
| コード長 | 970 bytes |
| コンパイル時間 | 165 ms |
| コンパイル使用メモリ | 82,304 KB |
| 実行使用メモリ | 90,544 KB |
| 最終ジャッジ日時 | 2024-07-19 12:48:11 |
| 合計ジャッジ時間 | 4,559 ms |
|
ジャッジサーバーID (参考情報) |
judge5 / judge1 |
(要ログイン)
| ファイルパターン | 結果 |
|---|---|
| sample | AC * 4 |
| other | AC * 33 |
ソースコード
import sys
inputs = sys.stdin.readline
"""再帰関数のときセット
sys.setrecursionlimit(10**7)
import pypyjit
pypyjit.set_param('max_unroll_recursion=-1')
"""
def main():
N, K = map(int, inputs().split())
A = list(map(int, inputs().split()))
def judge(m):
cnt = 0
power = 0
for i, a in enumerate(A):
if cnt > K:
break
now_val = a + power
if now_val < m:
pl_cnt = (m - now_val) // (i + 1)
if (m - now_val) % (i + 1):
pl_cnt += 1
cnt += pl_cnt
power += pl_cnt * (i + 1)
return cnt <= K
left, right = 0, 10 ** 15
while right - left >= 2:
mid = (left + right) // 2
if judge(mid):
left = mid
else:
right = mid - 1
if judge(right):
print(right)
else:
print(left)
if __name__ == '__main__':
main()
meruuu61779999