Найти в Дзене

Разбор номера 11228 #kege по информатике #ЕГЭ9

Автор: М.Ишимов
Уровень: Сложный Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел всех строк таблицы, для которых выполнены оба условия:
– в строке есть только одно число, которое повторяется трижды, и только два числа, каждое из которых повторяется дважды;
– четыре наименьших числа строки можно разбить на две пары чисел с нечётными суммами.
В ответе запишите полученное число. Определите сумму чисел всех строк таблицы Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻 Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!
Оглавление

Автор: М.Ишимов
Уровень: Сложный

Условие задачи:

Откройте файл электронной таблицы, содержащей в каждой строке семь натуральных чисел. Определите сумму чисел всех строк таблицы, для которых выполнены оба условия:
– в строке есть только одно число, которое повторяется трижды, и только два числа, каждое из которых повторяется дважды;
– четыре наименьших числа строки можно разбить на две пары чисел с нечётными суммами.
В ответе запишите полученное число.

Теоретическая справка:

Определите сумму чисел всех строк таблицы

Код решения:

Ответ: 4675
Ответ: 4675

Комментарии к коду:

  1. from itertools import *
    Импортируется модуль itertools.
  2. summa = 0
    Создается переменная summa.
  3. for s in open('9.txt'):
    В цикле for происходит построчное чтение файла. Каждая строка файла сохраняется в переменную s.
  4. M = sorted([int(x) for x in s.split()])
    Строка s разбивается на список строк с помощью метода split(). Каждая строка преобразуется в целое число с помощью int(x). Полученный список чисел сортируется и сохраняется в переменную M.
  5. copied_2 = [x for x in M if M.count(x) == 2]
    Создается список copied_2, который содержит элементы из списка M, встречающиеся ровно два раза.
  6. copied_3 = [x for x in M if M.count(x) == 3]
    Создается список copied_3, который содержит элементы из списка M, встречающиеся ровно три раза.
  7. if len(copied_3) == 3 and len(copied_2) == 4:
    Проверяется условие: если длина списка copied_3 равна 3 и длина списка copied_2 равна 4.
  8. if any(sum(p[:2]) % 2 != 0 and sum(p[2:]) % 2 != 0 for p in permutations(M[:4])):
    Генерируются все возможные перестановки первых четырех элементов списка M . Для каждой перестановки p проверяется, является ли сумма первых двух элементов нечетной и сумма последних двух элементов также нечетной.
  9. summa += sum(M)
    Сумма всех элементов списка M добавляется к переменной summa.
  10. print(summa)
    Выводится значение переменной summa.
Больше разборов на эту и другие задачи вы можете найти в нашем Телеграм канале: Информатика ЕГЭ | itpy 👨‍💻
Подписывайтесь на наш канал по теории Python: Азим вкатывается в IT | itpy 💻  Вы найдете тут много полезного!