結果
問題 | No.2217 Suffix+ |
ユーザー |
![]() |
提出日時 | 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()