В
Все
М
Математика
О
ОБЖ
У
Українська мова
Д
Другие предметы
Х
Химия
М
Музыка
Н
Немецкий язык
Б
Беларуская мова
Э
Экономика
Ф
Физика
Б
Биология
О
Окружающий мир
Р
Русский язык
У
Українська література
Ф
Французский язык
П
Психология
А
Алгебра
О
Обществознание
М
МХК
В
Видео-ответы
Г
География
П
Право
Г
Геометрия
А
Английский язык
И
Информатика
Қ
Қазақ тiлi
Л
Литература
И
История
MrLux123
MrLux123
28.11.2020 16:56 •  Информатика

Мерзовкусная диета Контрольная работа
макс.
Дедлайн: 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

Показать ответ
Ответ:
redle01
redle01
11.01.2024 16:34
Привет! Я рад, что ты обратился ко мне за помощью. Давай решим эту задачу пошагово.

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

Для начала, создадим функцию, которая прочитает ввод и преобразует его в матрицу чисел:

```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])
```

Теперь мы можем запустить нашу программу и получить результат. Надеюсь, это поможет тебе решить задачу. Если у тебя возникнут еще вопросы, не стесняйся задавать. Удачи!
0,0(0 оценок)
Популярные вопросы: Информатика
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота