提出 #31263600


ソースコード 拡げる

def solve():
    INF = 1000000000000000000
    n, k = map(int, input().split())
    a = [int(input()) for i in range(n)]
    s = [a[0]] * n # a の累積和
    for i in range(n - 1):
        s[i + 1] = s[i] + a[i + 1]
    if s[-1] == k:
        print(1) # コーナーケース
        return

    dp = [[INF] * (n + 1) for i in range(n)]
    # dp[i][j] = i 日目までに j 日機嫌が良くなるために必要な勝利回数の最小値
    dp[0][0] = 0
    dp[0][1] = 1
    for i in range(1, n):
        for j in range(n + 1):
            dp[i][j] = dp[i - 1][j]
            if j > 0:
                # i 日目に機嫌を良くすることを考える
                # i - 1 日目までの勝率は dp[i - 1][j - 1] / s[i - 1]
                # 今日の勝利回数を x として i - 1 日目までの勝率を超えるには
                # dp[i - 1][j - 1] / s[i - 1] < x / a[i]
                # x > (dp[i - 1][j - 1] * a[i - 1]) / s[i - 1]
                x = (dp[i - 1][j - 1] * a[i]) // s[i - 1] + 1
                dp[i][j] = min(dp[i][j], dp[i - 1][j - 1] + x)
    answer = 0
    for i in range(n + 1):
        if dp[n - 1][i] <= k:
            answer = i
    print(answer)
solve()

提出情報

提出日時
問題 B - 高橋君ゲーム
ユーザ Pro_ktmr
言語 PyPy3 (7.3.0)
得点 100
コード長 1236 Byte
結果 AC
実行時間 521 ms
メモリ 105888 KiB

ジャッジ結果

セット名 Sample All
得点 / 配点 0 / 0 100 / 100
結果
AC × 4
AC × 68
セット名 テストケース
Sample s1.txt, s2.txt, s3.txt, s4.txt
All 01.txt, 02.txt, 03.txt, 04.txt, 05.txt, 06.txt, 07.txt, 08.txt, 09.txt, 10.txt, 11.txt, 12.txt, 13.txt, 14.txt, 15.txt, 16.txt, 17.txt, 18.txt, 19.txt, 20.txt, 21.txt, 22.txt, 23.txt, 24.txt, 25.txt, 26.txt, 27.txt, 28.txt, 29.txt, 30.txt, 31.txt, 32.txt, 33.txt, 34.txt, 35.txt, 36.txt, 37.txt, 38.txt, 39.txt, 40.txt, 41.txt, 42.txt, 43.txt, 44.txt, 45.txt, 46.txt, 47.txt, 48.txt, 49.txt, 50.txt, 51.txt, 52.txt, 53.txt, 54.txt, 55.txt, 56.txt, 57.txt, 58.txt, 59.txt, 60.txt, 61.txt, 62.txt, 63.txt, 64.txt, s1.txt, s2.txt, s3.txt, s4.txt
ケース名 結果 実行時間 メモリ
01.txt AC 521 ms 105380 KiB
02.txt AC 422 ms 105464 KiB
03.txt AC 415 ms 105532 KiB
04.txt AC 416 ms 105672 KiB
05.txt AC 413 ms 105656 KiB
06.txt AC 421 ms 105468 KiB
07.txt AC 416 ms 105628 KiB
08.txt AC 419 ms 105628 KiB
09.txt AC 423 ms 105792 KiB
10.txt AC 415 ms 105452 KiB
11.txt AC 417 ms 105520 KiB
12.txt AC 415 ms 105308 KiB
13.txt AC 424 ms 105504 KiB
14.txt AC 423 ms 105756 KiB
15.txt AC 426 ms 105612 KiB
16.txt AC 427 ms 105652 KiB
17.txt AC 418 ms 105444 KiB
18.txt AC 419 ms 105516 KiB
19.txt AC 416 ms 105500 KiB
20.txt AC 417 ms 105608 KiB
21.txt AC 85 ms 73664 KiB
22.txt AC 83 ms 73876 KiB
23.txt AC 416 ms 105580 KiB
24.txt AC 414 ms 105384 KiB
25.txt AC 83 ms 73884 KiB
26.txt AC 83 ms 73740 KiB
27.txt AC 81 ms 73636 KiB
28.txt AC 85 ms 73756 KiB
29.txt AC 426 ms 105888 KiB
30.txt AC 423 ms 105396 KiB
31.txt AC 421 ms 105636 KiB
32.txt AC 422 ms 105620 KiB
33.txt AC 423 ms 105556 KiB
34.txt AC 420 ms 105712 KiB
35.txt AC 430 ms 105504 KiB
36.txt AC 417 ms 105500 KiB
37.txt AC 414 ms 105452 KiB
38.txt AC 183 ms 99512 KiB
39.txt AC 185 ms 99228 KiB
40.txt AC 413 ms 105480 KiB
41.txt AC 410 ms 105620 KiB
42.txt AC 334 ms 105728 KiB
43.txt AC 331 ms 105656 KiB
44.txt AC 418 ms 105688 KiB
45.txt AC 421 ms 105480 KiB
46.txt AC 417 ms 105600 KiB
47.txt AC 415 ms 105544 KiB
48.txt AC 421 ms 105444 KiB
49.txt AC 416 ms 105640 KiB
50.txt AC 421 ms 105720 KiB
51.txt AC 51 ms 61332 KiB
52.txt AC 52 ms 61532 KiB
53.txt AC 50 ms 61452 KiB
54.txt AC 49 ms 61512 KiB
55.txt AC 54 ms 61500 KiB
56.txt AC 52 ms 61432 KiB
57.txt AC 51 ms 61516 KiB
58.txt AC 50 ms 61288 KiB
59.txt AC 53 ms 61532 KiB
60.txt AC 53 ms 61472 KiB
61.txt AC 50 ms 61468 KiB
62.txt AC 50 ms 61508 KiB
63.txt AC 50 ms 61504 KiB
64.txt AC 53 ms 61548 KiB
s1.txt AC 52 ms 61484 KiB
s2.txt AC 50 ms 61632 KiB
s3.txt AC 51 ms 61424 KiB
s4.txt AC 49 ms 61524 KiB