Submission #57084690


Source Code Expand

N = int(input())
H = list(map(int, input().split()))

def simulation(N):
    import random
    H = [random.randint(1, 10) for _ in range(N)]

    T = 0
    for h in H:
        while h > 0:
            T += 1
            if T % 3 == 0:
                h -= 3
            else:
                h -= 1
    return H, T


def solve(N, H):
    total_turns = 1

    for h in H:
        # total_turns += 1
        # 5のダメージを3ターンで与えるので、必要な3ターンセット数を求める
        full_sets_of_three_turns = h // 5
        remaining_health = h % 5

        # 3ターンごとに5ダメージ、つまりfull_sets_of_three_turns * 3ターン
        if full_sets_of_three_turns > 0:
            total_turns += full_sets_of_three_turns * 3

        # 残りの体力が0より大きい場合、追加のターンが必要
        # total_turns % 3によって変わる

        while remaining_health > 0:
            if total_turns % 3 == 0:
                remaining_health -= 3
            else:
                remaining_health -= 1
            # if remaining_health <= 0:
            #     break
            total_turns += 1


        # if remaining_health > 0:
        #     if remaining_health <= 2:
        #         total_turns += remaining_health
        #     else:
        #         total_turns += 3  # 残りの体力が3か4の場合は、次の3の倍数ターンでちょうど削れる

    return total_turns - 1

# while True:
#     N = 3
#     H, _T = simulation(N)
#     T = solve(N, H)
#     if _T != T:
#         print(N)
#         print(H)
#         print(_T, T)
#         break
# print(solve(3, [10, 7, 4]))
# print(solve(3, [6, 2, 2]))

print(solve(N, H))

Submission Info

Submission Time
Task C - Triple Attack
User mu16
Language Python (PyPy 3.10-v7.3.12)
Score 300
Code Size 1772 Byte
Status AC
Exec Time 96 ms
Memory 115260 KiB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 300 / 300
Status
AC × 3
AC × 25
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt
All random_01.txt, random_02.txt, random_03.txt, random_04.txt, random_05.txt, random_06.txt, random_07.txt, random_08.txt, random_09.txt, random_10.txt, random_11.txt, random_12.txt, random_13.txt, random_14.txt, random_15.txt, random_16.txt, random_17.txt, random_18.txt, random_19.txt, random_20.txt, random_21.txt, random_22.txt, sample_01.txt, sample_02.txt, sample_03.txt
Case Name Status Exec Time Memory
random_01.txt AC 96 ms 115032 KiB
random_02.txt AC 91 ms 110880 KiB
random_03.txt AC 92 ms 115256 KiB
random_04.txt AC 70 ms 88660 KiB
random_05.txt AC 92 ms 114784 KiB
random_06.txt AC 75 ms 96524 KiB
random_07.txt AC 95 ms 115260 KiB
random_08.txt AC 71 ms 89748 KiB
random_09.txt AC 92 ms 115096 KiB
random_10.txt AC 81 ms 102128 KiB
random_11.txt AC 92 ms 114812 KiB
random_12.txt AC 71 ms 87672 KiB
random_13.txt AC 92 ms 114852 KiB
random_14.txt AC 90 ms 110816 KiB
random_15.txt AC 93 ms 114932 KiB
random_16.txt AC 71 ms 87544 KiB
random_17.txt AC 92 ms 114604 KiB
random_18.txt AC 64 ms 83024 KiB
random_19.txt AC 89 ms 110404 KiB
random_20.txt AC 73 ms 90980 KiB
random_21.txt AC 85 ms 114656 KiB
random_22.txt AC 58 ms 76448 KiB
sample_01.txt AC 58 ms 76292 KiB
sample_02.txt AC 58 ms 76472 KiB
sample_03.txt AC 57 ms 76356 KiB