?>
Мерзовкусная диета Контрольная работа макс. Дедлайн: 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])
```
Теперь мы можем запустить нашу программу и получить результат. Надеюсь, это поможет тебе решить задачу. Если у тебя возникнут еще вопросы, не стесняйся задавать. Удачи!