ссылка на задачу: https://codingcompetitions.withgoogle.com/kickstart/round/000000000019ffc7/00000000001d3f56
Проблема В продаже N домов. Купить i-й дом стоит Ai долларов. У вас есть бюджет в B долларов, который вы можете потратить. Какое максимальное количество домов вы можете купить?
Входные данные В первой строке входных данных указано количество тестовых примеров, далее следуют тестовые примеры T. T. Каждый тестовый пример начинается с единственной строки, содержащей два целых числа N и B. Вторая строка содержит N целых чисел. I-е целое число - это Ai, стоимость i-го дома.
Вывод Для каждого тестового примера выведите одну строку, содержащую Case #x: y, где x - тест номер дела (начиная с 1), а y - максимальное количество домов, которое вы можете купить.
**Limits**
Time limit: 15 seconds per test set.
Memory limit: 1GB.
1 ≤ T ≤ 100.
1 ≤ B ≤ 105.
1 ≤ Ai ≤ 1000, for all i.
**Test set 1**
1 ≤ N ≤ 100.
**Test set 2**
1 ≤ N ≤ 105.
**Sample Input**
3
4 100
20 90 40 90
4 50
30 30 10 10
3 300
999 999 999
**Sample Output**
Case #1: 2
Case #2: 3
Case #3: 0
В примере дела № 1 ваш бюджет составляет 100 долларов. Купить 1-й и 3-й дома можно за 20 + 40 = 60 долларов. В примере № 2 ваш бюджет составляет 50 долларов. Купить 1-й, 3-й и 4-й дома можно за 30 + 10 + 10 = 50 долларов. В примере № 3 ваш бюджет составляет 300 долларов. Вы не можете покупать дома (поэтому ответ - 0).
Вот мое решение (Python 3):
T = int(input())
res = []
for i in range(T):
N, B = map(int, input().split(' '))
ai = list(map(int, input().split(' ')))
ai.sort()
for k in range(len(ai)):
B = B - ai[k]
if B < 0:
res.append(k)
break
elif k == len(ai)-1:
res.append(k+1)
for i in range(T):
print("Case #", i+1, ":", res[i])
Я перепробовал все тестовые примеры, которые только мог придумать и я получаю ожидаемый результат. Но когда я пытаюсь отправить, появляется сообщение «Образец не выполнен: неправильный ответ». Пожалуйста, дайте мне знать, что именно не так с моим решением и как его можно улучшить.