Информатика | Илья Андрианов | itpy 🧑‍💻
1.04K subscribers
265 photos
21 videos
19 files
633 links
По рекламе: @ilandroxxy

Шпаргалки: clck.ru/3FwqWt
📚 Наши курсы: clck.ru/3FwqYb

Разборы: clck.ru/3Fwqay
💬 Чатик: clck.ru/3FwqZa

📺 YouTube: clck.ru/3FwqbX

🙋‍♂️ Я автор: @ilandroxxy
Download Telegram
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 61363 #reshu по информатике #ЕГЭ17

Полный разбор задачи в Notion

Интересная и объемная задача 17 номера с сайта Решу ЕГЭ:
M = [int(x) for x in open('17.txt')]
A = [x for x in M if str(x)[-2:] == '19']

count = 0
maxi = 0
for i in range(0, len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if sum([len(str(abs(j))) == 4 for j in [x, y, z]]) == 2:
if sum([abs(j) % 3 == 0 for j in [x, y, z]]) >= 1:
if sum([x, y, z]) > max(A):
count += 1
maxi = max(maxi, x + y + z)
print(count, maxi)


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
107🔥432
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 2491 #kege по информатике #ЕГЭ17

Полный разбор задачи в Notion

Давайте повторим решение 17 номера на этом интересном примере с сайта kompege.ru.

👩‍💻 Код решения:
M = [int(x) for x in open('17.txt')]
avg = sum(M) / len(M)
R = []
for i in range(len(M)-2):
x, y, z = M[i], M[i+1], M[i+2]
if x < avg or y < avg or z < avg:
if all('9' in str(a) for a in [x, y, z]):
R.append(x + y + z)
print(len(R), max(R))


Файлы к заданию: 17.txt

#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
765👏2
🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ17
Автор: Статград
Уровень:
Сложный

🚩 Условие задачи:
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.


👩‍💻 Код решения:
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []

for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]

if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]

if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))

print(len(result), max(result))

# Ответ: 260 106865


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

1⃣ numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.


2⃣ filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.


3⃣ result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.


4⃣ for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.


5⃣ # x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.


6⃣ length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].


7⃣ if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.


8⃣ multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.


0⃣ multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.


1⃣0⃣ if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.


1⃣1⃣ if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.


1⃣2⃣ result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.


1⃣3⃣ print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.


Информатика ЕГЭ | itpy 👨‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
865
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 16383 #kege по информатике #ЕГЭ17
Автор: ЕГКР 27.04
Уровень: Базовый


🚩 Условие задачи:
Определите количество пар элементов последовательности, в которых только один из двух элементов оканчивается на 21 и является пятизначным числом, а сумма квадратов элементов пары не меньше квадрата максимального элемента последовательности, оканчивающегося на 21 и являющегося пятизначным числом.


🚩 Теоретическая справка:
Аудио с пояснением к коду решения оставлю в комментариях.


👩‍💻 Код решения:
M = [int(x) for x in open('17.txt')]
D = [int(x) for x in M if str(x)[-2:] == '21' and len(str(abs(x)))==5 ]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if (x in D and y not in D) or (y in D and x not in D):
if (x**2)+(y**2) >= max(D)**2:
R.append(x + y)
print(len(R), max(R))

# Ответ: 6283 9627


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

1⃣ M = [int(x) for x in open('17.txt')]
Создание списка M, содержащего целочисленные значения, полученные из файла '17.txt'.


2⃣ D = [int(x) for x in M if str(x)[-2:] == '21' and len(str(abs(x)))==5]
Фильтрация списка M, чтобы получить только элементы, оканчивающиеся на '21' и имеющие длину равную 5 символам.


3⃣ R = []
Инициализация пустого списка R для хранения результатов.


4⃣ for i in range(len(M)-1):
Цикл for, который проходит по индексам элементов списка M за исключением последнего.


5⃣ x, y = M[i], M[i+1]

Присваивание переменным x и y значений пар элементов списка M.


6⃣ if (x in D and y not in D) or (y in D and x not in D):
Проверка условия: если один элемент из пары содержится в списке D, а другой нет, или наоборот.


7⃣ if (x**2)+(y**2) >= max(D)**2:
Проверка условия: если квадрат суммы элементов пары больше или равен квадрату максимального значения из списка D.


8⃣ R.append(x + y)
Добавление суммы элементов пары x и y в список R.


🔟 print(len(R), max(R))
Вывод количества элементов в списке R и максимального значения из списка R.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
12442
This media is not supported in your browser
VIEW IN TELEGRAM
1⃣7⃣ Шпаргалка ЕГЭ | Задание #ЕГЭ17 #шпора

📌 Ссылка на полную версию шпаргалки/методички на Notion.

Поставь ❤‍🔥, отправь другу, и забирай несколько полезных функций, которые уже ждут тебя здесь:


🚩 Считываем файл 17.txt в общий список M:
M = [int(x) for x in open('17.txt')]



Три основных типа задач 17 номера:

🚩 В данной задаче под парой подразумевается два идущих подряд элемента последовательности.
M = [1, 2, 3, 4, 5]
for i in range(len(M)-1):
x, y = M[i:i+2]
print(f'{x}{y}', end=' ')

# Вывод:
# 12 23 34 45


🚩 Назовём тройкой три идущих подряд элемента последовательности.
M = [1, 2, 3, 4, 5]
for i in range(len(M)-2):
x, y, z = M[i:i+3]
print(f'{x}{y}{z}', end=' ')

# Вывод:
# 123 234 345


🚩 В данной задаче под парой подразумевается два различных элемента последовательности.
M = [1, 2, 3, 4, 5]
for i in range(0, len(M)):
for j in range(i+1, len(M)):
x, y = M[i], M[j]
print(f'{x}{y}', end=' ')
print()

# Вывод:
# 12 13 14 15
# 23 24 25
# 34 35
# 45



Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора: boosty 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
221463
🚩🚩 Разбор ДВ #2024 номера #17 по информатике #ЕГЭ17

👩‍💻 Код решения :
M = [int(x) for x in open('17.txt')]
D = [x for x in M if x % 32 == 0]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if x < 0 or y < 0:
if (x + y) < len(D):
R.append(x + y)
print(len(R), max(R))


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
754
🚩🚩 Разбор ДВ #2024 номера #17 по информатике #ЕГЭ17

👩‍💻 Код решения:
M = [int(x) for x in open('17.txt')]
D = [x for x in M if x > 0]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
if x < 0 or y < 0:
if x + y % min(D) == 0:
R.append(x + y)
print(len(R), max(R))


Информатика ЕГЭ | itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
955
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 17504 #kege по информатике #ЕГЭ17
Уровень: Средний

🚩 Условие задачи:
Определите количество троек элементов последовательности, в которых не более одного из трёх элементов являются одновременно четырёхзначными и чётными числами. А сумма элементов тройки не больше максимального элемента последовательности, оканчивающегося на 3 в девятеричной системе счисления.

В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек.

В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.

Файл доступен в комментариях 👇


🚩 Теоретическая справка:
В данной задаче полезно заметить, что найти число оканчивающееся на 3 в девятеричной системе счисления можно банальным делением, так как последняя цифра троичной записи будет являться первым остатком: x % 9 == 3.

Дополнительный вариант решения тоже оставлю в комментариях.


👩‍💻 Код решения:
M = [int(x) for x in open('17.txt')]
A = [x for x in M if len(str(abs(x))) == 4 and abs(x) % 2 == 0]
B = max([x for x in M if x % 9 == 3])
R = []
for i in range(len(M) - 2):
x, y, z = M[i], M[i + 1], M[i + 2]
if (x in A) + (y in A) + (z in A) <= 1:
if (x + y + z) <= B:
R.append(x + y + z)
print(len(R), max(R))

# Ответ: 6281 99699


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

1⃣ M = [int(x) for x in open('17.txt')]
Читаем данные из файла '17.txt', преобразуем каждую строку в целое число и создаем список M.


2⃣ A = [x for x in M if len(str(abs(x))) == 4 and abs(x) % 2 == 0]
Создаем список A из чисел из M, которые имеют ровно 4 цифры и являются четными.


3⃣ B = max([x for x in M if x % 9 == 3])
Находим максимальное значение среди чисел из M, которые при делении на 9 дают остаток 3, и сохраняем его в B.


4⃣ R = []
Инициализируем пустой список R для хранения результатов сумм, удовлетворяющих условиям.


5⃣ for i in range(len(M) - 2):
Проходим по списку M, используя индексы от 0 до (длина M - 3), чтобы избежать выхода за пределы при обращении к элементам M[i+2].


6⃣ x, y, z = M[i], M[i + 1], M[i + 2]
Выбираем три последовательных элемента списка M.


7⃣ if (x in A) + (y in A) + (z in A) <= 1:
Проверяем условие, что среди трех выбранных чисел не более одного числа принадлежит списку A.


8⃣ if (x + y + z) <= B:
Проверяем условие, что сумма трех выбранных чисел меньше или равна значению B.


0⃣ R.append(x + y + z)
Если оба условия выполняются, добавляем сумму (x+y+z) в список R.


🔟 print(len(R), max(R))
Выводим количество элементов в списке R и максимальное значение в списке R.


Информатика ЕГЭ | itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
2643
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 18176 #kege по информатике #ЕГЭ17
Автор: (Д. Бахтиев)
Уровень: Средний


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


🚩 Теоретическая справка:
В этой задачи я слеиваю все числа тройки в одну общую строчку и изящно избавляюсь от знака "минус".


👩‍💻 Код решения:
M = [int(x) for x in open('files/17.txt')]
D = [x for x in M if x > 0 and x % 10 == 4]
R = []
for i in range(len(M)-2):
# x, y, z = M[i], M[i+1], M[i+2]
x, y, z = M[i:i+3]
S = ''.join([str(p) for p in (x, y, z)])
summa = sum(int(x) for x in S if x.isdigit())
if summa == min(D):
R.append(x + y + z)
print(len(R), max(R))

# Ответ: 11 180738


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

1⃣ M = [int(x) for x in open('files/17.txt')]
Читаем файл '17.txt', преобразуем каждую строку в целое число и сохраняем в список M.


2⃣ D = [x for x in M if x > 0 and x % 10 == 4]
Создаем список D, содержащий только положительные числа из M, оканчивающиеся на 4.


3⃣ R = []
Инициализируем пустой список R, который будет хранить результаты.


4⃣ for i in range(len(M)-2):
Запускаем цикл по индексу i от 0 до длины списка M минус 2, чтобы иметь возможность брать группы из трех чисел.


5⃣ x, y, z = M[i:i+3]
Объявляем переменные x, y, z как три последовательных элемента списка M, начиная с индекса i.


6⃣ S = ''.join([str(p) for p in (x, y, z)])
Конвертируем x, y, z в строки и объединяем их в одну строку S.


7⃣ summa = sum(int(x) for x in S if x.isdigit())
Вычисляем сумму всех цифр в строке S и сохраняем её в переменной summa.


8⃣ if summa == min(D):
Проверяем, равна ли сумма summa минимальному значению в списке D.


0⃣ R.append(x + y + z)
Если условие выполняется, добавляем сумму x, y и z в список R.


🔟 print(len(R), max(R))
Выводим количество найденных сумм в R и максимальное значение из R.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Кстати у нас есть чатик 🖥
Please open Telegram to view this post
VIEW IN TELEGRAM
105❤‍🔥3
🚩🚩 Разбор этого номера #yandex по информатике #ЕГЭ17
Автор: Яндекс Учебник
Уровень: Средний

🚩 Условие задачи:
Определите количество пар элементов последовательности, сумма которых превосходит каждую из сумм соседних пар, при этом все три суммы являются положительными.

В ответе запишите количество найденных пар чисел, затем минимальное из произведений элементов таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности. Под соседними парами подразумеваются четыре идущих подряд элемента последовательности.


🚩 Теоретическая справка:
Интересный пример, так как нам приходится рассматривать не только пару/тройку символов, как в основных задачах, но сразу 6-ку символов!


👩‍💻 Код решения:
M = [int(s) for s in open('files/17.txt')]
R = []
for i in range(len(M)-5):
x, y, z, w, r, t = M[i:i+6]
if (z + w) > (x + y) and (z + w) > (r + t):
if z + w > 0 and x + y > 0 and r + t > 0:
R.append(z * w)
print(len(R), min(R))

# Ответ: 610 -123157359


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

1⃣ M = [int(s) for s in open('files/17.txt')]
- Открывает файл 'files/17.txt', читает его и преобразует каждую строку в целое число, создавая список M.


2⃣ R = []
- Создает пустой список R для хранения результатов, которые удовлетворяют условиям.


3⃣ for i in range(len(M)-5):
- Запускает цикл по элементам списка M, при этом гарантируется, что для каждой итерации хватит шести элементов.


4⃣ x, y, z, w, r, t = M[i:i+6]
- Извлекает шесть подряд идущих элементов из списка M, начиная с позиции i, и присваивает их переменным x, y, z, w, r и t.


5⃣ if (z + w) > (x + y) and (z + w) > (r + t):
- Проверяет, что сумма z и w больше суммы x и y, а также больше суммы r и t.


6⃣ if z + w > 0 and x + y > 0 and r + t > 0:
- Дополнительно проверяет, что каждая из сумм z + w, x + y и r + t больше нуля.


7⃣ R.append(z * w)
- Если условия выполнены, добавляет произведение z и w в список R.


8⃣ print(len(R), min(R))
- Выводит количество элементов в списке R и минимальное значение из этого списка.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Поддержать автора донатом 💵
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥8👍5🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера #statgrad по информатике #ЕГЭ17
Автор: Статград
Уровень:
Сложный

🚩 Условие задачи:
Назовём четвёркой четыре идущих подряд элемента
последовательности. Определите количество четвёрок, для которых
выполняются следующие условия:
– в четвёрке есть хотя бы два пятизначных числа и хотя бы одно не пятизначное;
– в четвёрке больше чисел, кратных 3, чем чисел, кратных 7;
– сумма элементов четвёрки больше максимального элемента
последовательности, запись которого заканчивается на 538, но меньше
удвоенного значения этого элемента.


👩‍💻 Код решения:
numbers = [int(x) for x in open('17.txt')]
filtered = [x for x in numbers if str(x)[-3:] == '538']
result = []

for i in range(len(numbers) - 3):
# x, y, z, w = numbers[i:i + 4]
length = [len(str(abs(a))) for a in numbers[i:i + 4]]

if 2 <= length.count(5) < 4:
multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]

if len(multiples_of_3) > len(multiples_of_7):
if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
result.append(sum(numbers[i:i + 4]))

print(len(result), max(result))

# Ответ: 260 106865


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

1⃣ numbers = [int(x) for x in open('17.txt')]
Чтение чисел из файла "17.txt" и преобразование их в целочисленный формат, помещение результатов в список numbers.


2⃣ filtered = [x for x in numbers if str(x)[-3:] == '538']
Создание нового списка под названием filtered, который содержит только элементы из numbers, у которых последние три цифры равны '538'.


3⃣ result = []
Инициализация пустого списка с именем result, в который будут помещаться результаты для последующего анализа.


4⃣ for i in range(len(numbers) - 3):
Запуск цикла for, который перебирает индексы элементов numbers за исключением последних трех элементов.


5⃣ # x, y, z, w = numbers[i:i + 4]
Комментарий указывает на предполагаемое использование переменных x, y, z, w для значений из подсписка numbers[i:i + 4], но непосредственно переменные не используются в данном участке кода.


6⃣ length = [len(str(abs(a))) for a in numbers[i:i + 4]]
Создание списка length, содержащего длины строковых представлений абсолютных значений элементов из подсписка numbers[i:i + 4].


7⃣ if 2 <= length.count(5) < 4:
Проверка условия: количество цифр "5" в длинах строковых представлений элементов равно или больше 2 и меньше 4.


8⃣ multiples_of_3 = [a for a in numbers[i:i + 4] if a % 3 == 0]
Формирование списка multiples_of_3, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 3 без остатка.


0⃣ multiples_of_7 = [a for a in numbers[i:i + 4] if a % 7 == 0]
Формирование списка multiples_of_7, содержащего элементы из подсписка numbers[i:i + 4], которые делятся на 7 без остатка.


1⃣0⃣ if len(multiples_of_3) > len(multiples_of_7):
Проверка условия: количество элементов, делящихся на 3 без остатка, больше количества элементов, делящихся на 7 без остатка.


1⃣1⃣ if max(filtered) < sum(numbers[i:i + 4]) < max(filtered) * 2:
Проверка условия: сумма элементов подсписка numbers[i:i + 4] находится в интервале между максимальным элементом списка filtered и удвоенным значением максимального элемента из filtered.


1⃣2⃣ result.append(sum(numbers[i:i + 4]))
Добавление суммы элементов подсписка numbers[i:i + 4] в список result.


1⃣3⃣ print(len(result), max(result))
Вывод количества элементов в списке result и максимального значения в этом списке.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Тут отвечают на вопросы
Please open Telegram to view this post
VIEW IN TELEGRAM
2🔥74❤‍🔥3
🚩🚩 Разбор номера 18257 #kege по информатике #ЕГЭ17
Автор: (Л. Шастин)
Уровень:
Средний

🚩 Условие задачи:
Определите количество пар элементов последовательности, сумма номеров которых оканчивается на ту же цифру, что и максимальный элемент последовательности.

В ответе запишите количество найденных пар, затем минимальное значение среди модулей разностей суммы элементов и суммы номеров таких пар.

В данной задаче под парой подразумевается два идущих подряд элемента последовательности.


🚩 Теоретическая справка:
Мне эта задача очень понравилась, так как присутствует условие про номера элементов последовательности. Реализовать это не сложно, как оказалось, зато какая красота получилась! Обратите внимание, что происходит смещение по индексу на +1 элемент*


👩‍💻 Код решения:
R = []
M = [int(x) for x in open('17.txt')]
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))

# Ответ: 1000 811


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

1⃣ R = []
Инициализация пустого списка R, который будет хранить результаты.


2⃣ M = int(x) for x in open('0. files/17.txt')
Открытие файла '0. files/17.txt', чтение каждой строки, преобразование их в целые числа и сбор этих чисел в список M.


3⃣ for i in range(len(M)-1):
Начало цикла по всем элементам списка M, кроме последнего, с индексами от 0 до (длина M - 2).


4⃣ x, y = Mi, Mi+1
Присваивание текущего элемента M и следующего элемента M соседним переменным x и y соответственно.


5⃣ i, j = i+1, i+2
Расчет значений индексов i и j для проверки условия следующей строки.


6⃣ if (i + j) % 10 == max(M) % 10:
Условие: если сумма индексов i и j даёт остаток от деления на 10, равный остатку от деления максимального элемента M на 10, выполнить следующий блок.


7⃣ R.append(abs((x+y) - (i+j)))
Если условие выполнено, вычислить разность между суммой элементов x и y и суммой индексов i и j, взять модуль этой разности и добавить в список R.


8⃣ print(len(R), min(R))
Вывод на экран количества элементов в списке R и минимального значения в этом списке R.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Наша Stepik подборкой задач😼
Please open Telegram to view this post
VIEW IN TELEGRAM
11👍7🔥6
This media is not supported in your browser
VIEW IN TELEGRAM
🚩🚩 Разбор номера 12249 #kege по информатике #ЕГЭ17
Автор: ЕГКР 16.12.23
Уровень: Базовый


🚩 Условие задачи:
Определите количество троек элементов последовательности, в которых хотя бы один из трёх элементов оканчивается на 3, а сумма элементов тройки не больше максимального элемента последовательности, являющегося пятизначным числом, которое оканчивается на 3.

В ответе запишите количество найденных троек чисел, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.


🚩 Теоретическая справка:
В данной задаче очень удобно собрать отдельный список для элементов оканчивающихся на 3 (список А) и потом пробежать все лежащие в нем элементы, чтоб добавить условие с пятизначными символам (список D).


👩‍💻 Код решения:
D = [int(x) for x in open('0. files/17.txt')]
R = []
A = [x for x in D if abs(x) % 10 == 3]
B = [x for x in A if len(str(abs(x))) == 5]
for i in range(len(D) - 2):
x, y, z = D[i], D[i + 1], D[i + 2]
if ((x in A) + (y in A) + (z in A)) >= 1:
if (x + y + z) <= max(B):
R.append(x + y + z)
print(len(R), max(R))

# Ответ: 1767 99081


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

1⃣ D = int(x) for x in open('0. files/17.txt')
- Создаем список D, содержащий целые числа из файла '17.txt'.


2⃣ R = [ ]
- Инициализируем пустой список R для хранения результатов.


3⃣ A = x for x in D if abs(x) % 10 == 3
- Создаем список A, содержащий все числа из D, заканчивающиеся на 3.


4⃣ B = x for x in A if len(str(abs(x))) == 5
- Создаем список B, содержащий только те числа из A, которые являются пятиместными.


5⃣ for i in range(len(D) - 2):
- Начинаем цикл для перебора элементов списка D с индексом i от 0 до len(D) - 3.


6⃣ x, y, z = Di, Di + 1, Di + 2
- Присваиваем переменным x, y, z текущие и следующие два элемента из D.


7⃣ if ((x in A) + (y in A) + (z in A)) >= 1:
- Проверяем, содержится ли хотя бы одно из значений x, y, или z в списке A.


8⃣ if (x + y + z) <= max(B):
- Проверяем, меньше ли сумма x, y и z, чем максимальный элемент в B.


0⃣ R.append(x + y + z)
- Если обе проверки прошли, добавляем сумму x, y и z в список R.


🔟 print(len(R), max(R))
- Выводим количество элементов в списке R и максимальное значение из этого списка.


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Кстати у нас есть чатик
Please open Telegram to view this post
VIEW IN TELEGRAM
29❤‍🔥4🔥4
🚩🚩 Разбор #ДВ2025 номера #ЕГЭ17 по информатике

🚩 Условие задачи:
В файле 17.txt содержится последовательность целых чисел от -100 000 до 100 000 включительно. Определите количество пар элементов последовательности, в которых только один элемент является двузначным, а сумма элементов больше максимального элемента последовательности, оканчивающегося на 19. В ответе запишите без пробела кол-во найденных пар чисел, затем максимальную из их сумм. Под парой подразумевается два идущих подряд элемента последовательности.



👩‍💻 Код решения:
f = open('17.txt').readline()
M = [int(i) for i in f]
max_19 = max(i for i in M if abs(i) % 100 == 19)

A = []
for i in range(len(M) - 1):
if (len(str(abs(M[i]))) == 2) + (len(str(abs(M[i+1]))) == 2) == 1:
if M[i] + M[i+1] > max_19:
A.append(M[i] + M[i+1])
print(len(A), max(A))


#⃣ Разбор задач ДВ, первый день 10.06.25
#⃣ Шпаргалки по всем остальным номерам ЕГЭ

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
4❤‍🔥3🔥3👍1
🚩🚩 Разбор номера 18257 #kege по информатике #ЕГЭ17
Автор: Л.Шастин
Уровень:
Средний

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


👩‍💻 Код решения:
M = [int(x) for x in open('0. files/17.txt')]
R = []
for i in range(len(M)-1):
x, y = M[i], M[i+1]
i, j = i+1, i+2
if (i + j) % 10 == max(M) % 10:
R.append(abs((x+y) - (i+j)))
print(len(R), min(R))

Ответ: 1000 811


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

1⃣ M = [int(x) for x in open('0. files/17.txt')]
Читаем файл '0. files/17.txt', преобразуем каждую строку в целое число и сохраняем в список M


2⃣ R = []
Создаем пустой список R для хранения результатов


3⃣ for i in range(len(M)-1):
Запускаем цикл по индексам элементов списка M, кроме последнего


4⃣ x, y = M[i], M[i+1]
Получаем текущий элемент x и следующий элемент y из списка M


5⃣ i, j = i+1, i+2
Вычисляем индексы i и j для проверки условия (увеличиваем на 1 и 2 соответственно)


6⃣ if (i + j) % 10 == max(M) % 10:
Проверяем, равен ли остаток от деления суммы индексов i и j на 10 остатку от деления максимального элемента списка M на 10


7⃣ R.append(abs((x+y) - (i+j)))
Если условие выполняется, добавляем в список R модуль разности между суммой элементов x и y и суммой индексов i и j


8⃣ print(len(R), min(R))
Выводим количество элементов в списке R и минимальное значение из этого списка


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4👍2🔥1
🚩🚩 Разбор номера 16264 #kege по информатике #ЕГЭ17
Автор: Е.Джобс
Уровень:
Базовый

🚩 Условие задачи:
Определите количество пар элементов последовательности, в которых хотя бы одно число кратно минимальному двузначному значению последовательности, которое кратно сумме своих цифр.

Гарантируется, что в последовательности есть хотя бы одно двузначное число, соответствующее условию. В ответе запишите количество найденных пар чисел, затем максимальную из сумм элементов таких пар. В данной задаче под парой подразумевается два идущих подряд элемента последовательности.


👩‍💻 Код решения:
M = [int(x) for x in open('0. files/17.txt')]
D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
R = []
for i in range(len(M) - 1):
x, y = M[i], M[i + 1]
if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
R.append(x + y)
print(len(R), max(R))

Ответ: 537 19247


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

1⃣ M = [int(x) for x in open('0. files/17.txt')]
Читает файл '0. files/17.txt', преобразует каждую строку в целое число и сохраняет в список M


2⃣ D = [x for x in M if len(str(abs(x))) == 2 and x % sum(map(int, str(x))) == 0]
Создает список D из чисел M, у которых ровно две цифры (учитывая модуль) и которые делятся на сумму своих цифр


3⃣ R = []
Инициализирует пустой список R для хранения сумм подходящих пар


4⃣ for i in range(len(M) - 1):
Цикл по индексам списка M (кроме последнего элемента, чтобы не выйти за границы)


5⃣ x, y = M[i], M[i + 1]
Берет текущий элемент x и следующий y из списка M


6⃣ if (x % min(D) == 0) + (y % min(D) == 0) >= 1:
Проверяет, что хотя бы одно из чисел x или y делится на минимальное число из списка D


7⃣ R.append(x + y)
Если условие выполняется, добавляет сумму x и y в список R


8⃣ print(len(R), max(R))
Выводит количество найденных пар и максимальную сумму из списка R


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
6🔥5👍3
🚩🚩 Разбор номера 18176 #kege по информатике #ЕГЭ17
Автор: Д.Бахтиев
Уровень:
Средний

🚩 Условие задачи:
В файле содержится последовательность целых чисел.
Её элементы могут принимать целые значения от -100 000 до 100 000 включительно. Определите количество троек последовательности, сумма цифр элементов которых равна минимальному положительному элементу последовательности, оканчивающемуся на 4. В ответе запишите количество найденных троек, затем максимальную из сумм элементов таких троек. В данной задаче под тройкой подразумевается три идущих подряд элемента последовательности.


👩‍💻 Код решения:
R = []
M = [int(x) for x in open('0. files/17.txt')]
W = [x for x in M if abs(x) % 10 == 4 and x > 0]
for i in range(len(M) - 2):
a, b, c = M[i], M[i + 1], M[i + 2]
summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
if summa == min(W):
R.append(a + b + c)
print(len(R), max(R))

Ответ: 11 180738

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

1⃣R = []
Создается пустой список R, в который будут записываться подходящие суммы троек чисел.


2⃣ M = [int(x) for x in open('0. files/17.txt')]
Открывается файл 17.txt, читаются все числа и сохраняются в список M (каждое число преобразуется в int).


3⃣ W = [x for x in M if abs(x) % 10 == 4 and x > 0]
В список W попадают только положительные числа из M, у которых последняя цифра равна 4 (например, 14, 24, -34 не подойдет, т.к. по условию x > 0).


4⃣ for i in range(len(M) - 2):
Цикл перебирает индексы списка M до предпоследнего элемента, чтобы можно было взять тройку чисел (a, b, c) = (M[i], M[i+1], M[i+2]).


5⃣ a, b, c = M[i], M[i + 1], M[i + 2]
Текущая тройка чисел из M записывается в переменные a, b и c.


6⃣ summa = sum([int(x) for x in str(a) + str(b) + str(c) if x.isdigit()])
- str(a) + str(b) + str(c) — числа a, b, c преобразуются в строки и объединяются в одну строку (например, 123, -45, 678 → "123-45678").
- [int(x) for x in ... if x.isdigit()] — из этой строки берутся только цифры (минус игнорируется), и они преобразуются обратно в числа.
- sum(...) — вычисляется сумма всех цифр в тройке чисел.


7⃣if summa == min(W):
Проверяется, равна ли сумма цифр минимальному числу из W (т.е. минимальному положительному числу, оканчивающемуся на 4).


8⃣ R.append(a + b + c)
Если условие выполнено, то сумма самой тройки чисел (a + b + c) добавляется в список R.


0⃣ print(len(R), max(R))
В конце выводится:
- количество найденных троек (len(R)),
- максимальная сумма из этих троек (max(R)).


#⃣ Полный список разборов в одном месте

Информатика ЕГЭ | чатик itpy 🧑‍💻
Please open Telegram to view this post
VIEW IN TELEGRAM
❤‍🔥4🔥3👍2