結果

問題 No.1808 Fullgold Alchemist
ユーザー ryusuke
提出日時 2022-01-26 17:21:52
言語 PyPy3
(7.3.15)
結果
AC  
実行時間 310 ms / 2,000 ms
コード長 787 bytes
コンパイル時間 335 ms
コンパイル使用メモリ 82,716 KB
実行使用メモリ 106,240 KB
最終ジャッジ日時 2024-12-23 09:22:11
合計ジャッジ時間 8,118 ms
ジャッジサーバーID
(参考情報)
judge1 / judge2
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 33
権限があれば一括ダウンロードができます

ソースコード

diff #

n, m = map(int, input().split())
a = list(map(int, input().split()))

'''
<=> 二分探索で k にできるかどうか
<=> bool で判断する
<=> i番目までで合計がik個あればTrue
<=> Trueならば答えは floor(k/m)
'''

def is_ok(k: int):
    # i番目までの合計を ki 以上に維持できるかどうか
    bool = True
    cnt = 0
    for i in range(n):
        cnt += a[i]
        if cnt >= k * (i + 1): continue
        bool = False

    if bool:
        return True
    else:
       return False

def binary_search(left, right):
    while abs(left - right) > 1:
        mid = (left + right) // 2
        if is_ok(mid):
            left = mid
        else:
            right = mid

    return left

INF = 10 ** 18
l, r = -1, INF
print(binary_search(l, r) // m)
0