Ошибка выполнения на UVA 11559 - планирование событий (с использованием Python) - PullRequest
0 голосов
/ 18 апреля 2020

Описание проблемы

Поскольку вы не явились на ежегодное общее собрание Северного клуба коллекционеров булавок, вы были единогласно избраны для организации этой летней экскурсии в Пин-Сити. Этой осенью вы можете выбрать один из нескольких выходных и найти подходящий отель для проживания, желательно как можно дешевле. У вас есть некоторые ограничения: Конечно, общая стоимость поездки должна быть в рамках бюджета. Все участники должны оставаться в одном отеле, чтобы избежать катастрофы прошлых лет, когда некоторые участники потерялись в городе, и их больше никогда не видели.

Ввод

Ввод Файл содержит несколько тестовых случаев, каждый из которых описан ниже. Первая строка ввода состоит из четырех целых чисел: 1 ≤ N ≤ 200, количество участников, 1 ≤ B ≤ 500000, бюджет, 1 ≤ H ≤ 18, количество рассматриваемых отелей и 1 ≤ W ≤ 13, количество недель, которые вы можете выбрать между. Затем следуйте двум строкам для каждого из отелей H. Первый дает 1 ≤ ​​p ≤ 10000, стоимость одного человека, проживающего в выходные дни в отеле. Вторая содержит W целых чисел, 0 ≤ a ≤ 1000, в которой указано количество доступных кроватей на каждые выходные в отеле.

Выходные данные

Для каждого тестового примера напишите к выводу - минимальная стоимость пребывания для вашей группы или «остаться дома», если в бюджете ничего не найдено, в отдельной строке.

Пример ввода

3 1000 2 3

200

0 2 2

300

27 3 20

5 2000 2 4

300

4 3 0 4

450

7 8 0 13

Пример вывода

900

остаться дома

Мой код

def main():
    try:
        while(1):
            n, b, h, w =  map(int, input().split())
            # print(n, b, h, w)
            budget = b + 5
            p = []
            for i in range(h):
                p.append(int(input()))
                a = list(map(int, input().split()))
                for j in a:
                    if j >= n and p[i]*n <= (budget-5):
                        budget = p[i]*n

            if(budget <= b):
                print(budget)
            else:
                print("stay home")
    except EOFError:
        pass

if __name__=="__main__":
    main()

Вот ссылка на проблему

    *I am getting run time error when solving it on UVA online judge.
    What did  I do wrong?*

1 Ответ

0 голосов
/ 18 апреля 2020

Я получил правильный ответ, хотя.

def main():
    try:  
        while(True):
            nbhw = [int(x) for x in input().split()]

            minprice = nbhw[1] + 1
            for x in range(peeps[2]):
                price_per_person = int(input())
                number_of_beds = [int(x) for x in input().split()]
                number_of_beds.sort(reverse = True)

                total_cost = price_per_person * nbhw[0]

                if number_of_beds[0] >= peeps[0] and total_cost <= (minprice-1):
                    minprice = total_cost

            if minprice > nbhw[1]:
                print("stay home")
            else:
                print(minprice)
    except EOFError:
        pass

if __name__=="__main__":
    main()

...