Мерзовкусная диета Контрольная работа
макс.
Дедлайн: 21 дек. 17:06
Ограничение времени 1 секунда
Ограничение памяти 64Mb
Ввод стандартный ввод или input.txt
Вывод стандартный вывод или output.txt
— Вот он, препротивный шишгурец! — размахивая им, вскричал БДВ. — Я его не перевариваю, не пережариваю и ненаслышу! Только потому, что я отказываюсь есть человеконасекомых, как другие великаны, я должен есть мерзовкусные шишгурцы! Если я откажусь, от меня останутся только кожа да трости!
— Вы хотите сказать кожа да кости? — спросила Софи.
— Сам знаю, что кости, — ответил БДВ постарайся понять, что иногда я перепутываюсь и передумываюсь, но всегда стараюсь изо всех вил выговаривать слова правильно.
не запутаться в дебрях слов, напишите программу.
Формат ввода
Вводится число – количество строк в списке.
Затем вводятся строки из чисел, записанных через пробел.
Формат вывода
Вывести словарь, в котором ключи – это числа из второго столбца матрицы, а значения – список из максимального числа, которое можно составить из остальных цифр той же строки без повторений. Если в столбце встречаются одинаковые числа, то значения добавляются в один список, который затем сортируется по возрастанию.
Пример 1
Ввод Вывод
3
11 2 3 40
53 2 3 1
24 1 12 3
{2: [531, 4310], 1: [4321]}
Пример 2
Ввод Вывод
4
11 3 7 8 0
7 6 22 3 1
1 3 0 8 3
0 3 3 7 71
{3: [7310, 8310, 8710], 6: [7321
Сначала нам нужно понять, что требуется от нас в задаче. Нам дана матрица чисел, разделенных пробелами. Количество строк в матрице задается пользователем вводом числа. Наша задача - создать словарь, где ключи будут числа из второго столбца матрицы, а значениями будут списки максимального числа из остальных цифр той же строки без повторений.
Для начала, создадим функцию, которая прочитает ввод и преобразует его в матрицу чисел:
```python
def read_matrix():
n = int(input()) # считываем количество строк в матрице
matrix = [] # создаем пустую матрицу
for _ in range(n):
row = list(map(int, input().split())) # считываем строку чисел и преобразуем их в список чисел
matrix.append(row) # добавляем строку в матрицу
return matrix
```
Теперь нам нужно написать функцию, которая будет создавать словарь согласно требованиям задачи:
```python
def create_dictionary(matrix):
dictionary = {} # создаем пустой словарь
for row in matrix:
key = row[1] # ключом словаря будет второе число в строке
value = row[2:] # значениями словаря будут числа после второго числа в строке
# убираем повторяющиеся числа из списка значений
value_without_duplicates = list(set(value))
# находим максимальное число из списка значений
max_value = max(value_without_duplicates)
# проверяем, есть ли уже такой ключ в словаре
if key in dictionary:
dictionary[key].append(max_value) # если есть, добавляем максимальное число в список значений
else:
dictionary[key] = [max_value] # если нет, создаем новую запись в словаре
# сортируем значения в списке для каждого ключа
for key in dictionary:
dictionary[key].sort()
return dictionary
```
Теперь мы можем использовать обе эти функции для решения задачи. Вот полный код решения:
```python
def read_matrix():
n = int(input()) # считываем количество строк в матрице
matrix = [] # создаем пустую матрицу
for _ in range(n):
row = list(map(int, input().split())) # считываем строку чисел и преобразуем их в список чисел
matrix.append(row) # добавляем строку в матрицу
return matrix
def create_dictionary(matrix):
dictionary = {} # создаем пустой словарь
for row in matrix:
key = row[1] # ключом словаря будет второе число в строке
value = row[2:] # значениями словаря будут числа после второго числа в строке
# убираем повторяющиеся числа из списка значений
value_without_duplicates = list(set(value))
# находим максимальное число из списка значений
max_value = max(value_without_duplicates)
# проверяем, есть ли уже такой ключ в словаре
if key in dictionary:
dictionary[key].append(max_value) # если есть, добавляем максимальное число в список значений
else:
dictionary[key] = [max_value] # если нет, создаем новую запись в словаре
# сортируем значения в списке для каждого ключа
for key in dictionary:
dictionary[key].sort()
return dictionary
# считываем ввод
matrix = read_matrix()
# создаем словарь
result = create_dictionary(matrix)
# выводим результат
for key in result:
print(key, ":", result[key])
```
Теперь мы можем запустить нашу программу и получить результат. Надеюсь, это поможет тебе решить задачу. Если у тебя возникнут еще вопросы, не стесняйся задавать. Удачи!