• Предмет: Информатика
  • Автор: mininaelisabeta89
  • Вопрос задан 6 лет назад

Помощь
Контрольная работа
макс. 35 балл.
Дедлайн: 23 дек. 18:09
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод
Вывод стандартный вывод
Среди травы рос одинокий цветок, похожий на тюльпан, но только очень большой и фиолетовый. У цветка явно были неприятности: он склонился головкой к земле. Не исключено, что вчера на него наступили.
– Маг дороги должен быть готов отдать часть своих сил тому, кто в этом нуждается. Ты бы не могла помочь этому цветочку?
– А как? – спросила я еле слышно.
– Очень просто. Протяни над ним ладонь, правую. И скажи: «Оживи». Если ты в самом деле захочешь, он оживет.
Напишите программу, которая определяет, кому сколько сил не хватает.
Если каждая строка таблицы соответствует некоторому параметру здоровья, а по столбцам таблицы записать значения этого параметра для каждого цветка, то сумма по столбцам будет характеризовать общее здоровье для каждого цветка. Определите, сколько каждому не хватает до целевого значения. Если получилось значение больше целевого, считайте, что не хватает 0.

Формат ввода
Вводятся строки чисел, записанных через пробел, пока не будет введена пустая строка. Количество чисел в каждой строке одинаково.
Затем вводится строка с целевыми значениями такой же длины.

Формат вывода
Определите, сколько здоровья не хватает каждому цветку (индексы столбца и целевого значения совпадают). Выведите полученные значения без повторений в порядке убывания. Если встретилось отрицательное значение какого-то параметра, нужно вывести WARNING! и прекратить подсчет. Затем вывести значения, которые успели подсчитать.

Пример 1
Ввод Вывод
0 7 6 7
8 6 5 0
6 4 1 7

15 18 15 14
3
1
0
Пример 2
Ввод Вывод
0 0 1 3
4 4 1 6
0 1 5 2
2 3 4 -2
7 2 3 1

5 11 17 17
WARNING!
3
1
0
Помогите пожалуйста, язык Пайтон!!!

Ответы

Ответ дал: hangoser
0

Ответ:

arr = [list(map(int, i.split())) for i in iter(input, '')]

tmp = list(map(int, input().split()))

res = set()

for i, j in zip(zip(*arr), tmp):

   if any(map(lambda x: x < 0, i)):

       print('WARNING!')

       break

   res_dif = j - sum(i)

   res.add(res_dif * (res_dif > 0))

print(*sorted(res, reverse=True), sep='\n')

Объяснение:

Держи

Вас заинтересует