어제보다 더 나은 나

구름LEVEL_화학물질 본문

코딩테스트/문제풀이

구름LEVEL_화학물질

확인해볼까 2022. 5. 10. 20:41
t = int(input())

test_case = [list(map(int, input().split())) for _ in range(2 * t)]

for i in range(t):
    special_volume = 0

    min_set = 0

    maxi = max(test_case[2 * i + 1])

    if maxi == 0:
        for j in range(len(test_case[2 * i + 1])):
            test_case[2 * i + 1][j] = test_case[2 * i + 1][j] + test_case[2 * i][1]
            min_set = min_set + 1

        while True:
            if test_case[2 * i + 1][2] == 0:
                for j in range(len(test_case[2 * i + 1])):
                    test_case[2 * i + 1][j] = test_case[2 * i + 1][j] + test_case[2 * i][1]
                min_set = min_set + 1

            test_case[2 * i + 1][0] = test_case[2 * i + 1][0] - test_case[2 * i + 1][2]
            test_case[2 * i + 1][1] = test_case[2 * i + 1][1] - test_case[2 * i + 1][2]
            test_case[2 * i + 1][2] = test_case[2 * i + 1][2] - test_case[2 * i + 1][2]

            special_volume = special_volume + test_case[2 * i + 1][2]

            if special_volume >= test_case[2 * i][2]:
                break

            else:
                test_case[2 * i + 1].sort(reverse=True)

    else:
        if maxi % test_case[2 * i][1] != 0:
            min_set = maxi // test_case[2 * i][1] + 1
        else:
            min_set = maxi // test_case[2 * i][1]

        for j in range(len(test_case[2 * i + 1])):
            test_case[2 * i + 1][j] = test_case[2 * i][1] * min_set - test_case[2 * i + 1][j]

        test_case[2 * i + 1].sort(reverse=True)

        while True:
            if test_case[2 * i + 1][2] == 0:
                for j in range(len(test_case[2 * i + 1])):
                    test_case[2 * i + 1][j] = test_case[2 * i + 1][j] + test_case[2 * i][1]
                min_set = min_set + 1

            test_case[2 * i + 1][0] = test_case[2 * i + 1][0] - test_case[2 * i + 1][2]
            test_case[2 * i + 1][1] = test_case[2 * i + 1][1] - test_case[2 * i + 1][2]
            test_case[2 * i + 1][2] = test_case[2 * i + 1][2] - test_case[2 * i + 1][2]

            special_volume = special_volume + test_case[2 * i + 1][2]

            if special_volume >= test_case[2 * i][2]:
                break

            else:
                test_case[2 * i + 1].sort(reverse=True)

    print(min_set)



Comments