# data[].attributes.headline
Чуть сложнее новый тип(Досрок)

# data[].attributes.subject
Чуть сложнее новый тип(Досрок)

# data[].attributes.body
Задание: Операнды арифметического выражения записаны в системе счисления с основанием 15.

97968х15 ₁₅ + 7x233 ₁₅

В записи чисел переменной х обозначена неизвестная цифра из алфавита 15-ричной системы счисления. Определите наименьшее значение х, при котором значение данного арифметического выражения кратно 14. Для найденного значения х вычислите частное от деления значения арифметического выражения на 14 и укажите его в ответе в десятичной системе счисления. Основание системы счисления в ответе указывать не нужно.

#Решение
for x in range(15):
one = '97968'+str(x)+'15'
two = '7'+str(x)+'233'
summa = int(one,15) + int(two,15)
if summa%14==0:
print(summa//14)
break

# data[].attributes.headline
Перебор всех возможных(досрок)

# data[].attributes.subject
Перебор всех возможных(досрок)

# data[].attributes.body
С помощью переборного алгоритма найдем все возможные соответствия вершинам графа пунктов из таблицы. Граф представим как строку, где подстроки, разделенные пробелом, будут представлять собой пункт (первый символ) и пункты, в которые можно из него попасть, остальные символы.

Код:
from itertools import permutations
s = 'абд бавд вбг гвеж дабе егдж жег'
s_g = {c[0]:set(c[1:]) for c in s.split()}
s1 = '1346 257 314 4137 5267 615 7245'
print('1234567')
for x in permutations(set(s) - {' '}):
s2 = s1
for a1, a2 in zip('1234567', x):
s2 = s2.replace(a1, a2)
s2_g = {c[0]: set(c[1:]) for c in s2.split()}
if s2_g == s_g: print(*x, sep='')

# data[].attributes.headline
Самый короткий(досрок)

# data[].attributes.subject
Самый короткий(досрок)

# data[].attributes.body
codes = ['0', '1010', '1111']
# длина префиксов от 1 до 4
for i in range(1, 5): # все префиксы, как двоичные числа
for x in range(2**i):
pfx = bin(x)[2:].zfill(i) # если префикс не является началом данного кода # и данных кодов не являются началом префикса
if all(c[:i] != pfx and pfx[:len(c)] != c for c in codes):print(pfx) break

# data[].attributes.headline
Если не будет кумира(досрок)

# data[].attributes.subject
Если не будет кумира(досрок)

# data[].attributes.body
Воспользуемся библиотекой turtle, предварительно направив голову черепахи вдоль оси ординат. Добавив две команды для быстрой отрисовки – tracer(0) в начало алгоритма и update() в конец. Для большего масштаба увеличим каждое перемещение в 10 раз. После чего нанесем точки с целочисленными координатами. Так же не забудем унести команду update() в конец алгоритма.

Код:
from turtle import *
tracer(0)
left(90)
down()
right(315)
for _ in range(7):
forward(16*10)
right(45)
forward(8*10)
right(135)
for x in range(-15, 15):
for y in range(0, 25):
up()
goto(x*10, y*10)
down()
dot(3)
update()

# data[].attributes.headline
!! ПУМ Тип досрочный(распространённый)

# data[].attributes.subject
!! ПУМ Тип досрочный(распространённый)

# data[].attributes.body
from itertools import product
words = [''.join(x) for x in product('АВЛОР', repeat=4)]
print(words.index('ЛААА') + 1)

# data[].attributes.headline
!!! ПУМ Скелет для решения 12 (досрок)

# data[].attributes.subject
!!! ПУМ Скелет для решения 12 (досрок)

# data[].attributes.body
for i in range(3, 100):
s = '3' + '5'*i
while '25' in s or '355' in s or '555' in s:
s = s.replace('25', '3', 1)
s = s.replace('355', '52', 1)
s = s.replace('555', '23', 1)
if sum(map(int, s)) == 27:
print(i)
break

# data[].attributes.headline
Не цикличный графф(досрок)

# data[].attributes.subject
Не цикличный графф(досрок)

# data[].attributes.body
Принцип решения:
1) Описываем все входящие дуги
2) Определяем значение в А, как 1
3) Если значения для всех начальных пунктов во входящих дугах определены, то находим значение в текущей вершине
4) Выполняем алгоритм до тех пор, пока значения для всех вершин не будет подсчитано.

g_str = 'ба вба гвб дг едг жг згеж иде киезл
лзж микл'
g = {c[0]: c[1:] for c in g_str.split()}
r = {'а': 1}
while not all(x in r for x in g):
for v, d in g.items():
if v not in r and all(x in r for x in d):
r[v] = sum(r[x] for x in d)
print(r['м'])

# data[].attributes.headline
Шаблон для 17(досрок)

# data[].attributes.subject
Шаблон для 17(досрок)

# data[].attributes.headline
Динамика(досрок)

# data[].attributes.subject
Динамика(досрок)

# data[].attributes.body
def cnt(a, b):
c = [0]*(b+1)
c[a] = 1 for i in range(a, b):
if i == 13:
continue
for nxt in (i+1, i+2, i*3):
if nxt <= b:
c[nxt] += c[i]
return c[b]
print(cnt(3,8) * cnt(8, 18))

# data[].attributes.headline
Динамика(досрок)

# data[].attributes.subject
Динамика(досрок)

# data[].attributes.body
Алгоритм вычисления значения функции F(n), где n – натуральное число, задан следующими соотношениями: F(n) = n, если n ≥ 2025, F(n) =n + 3 + f(n+3), если n < 2025. Чему равно значение выражения F(23) – F(21)?

Код
# заведем список для хранения значений
# последние значения определяются
# по условию выхода из рекурсии
f = [0]*2025 + [2025, 2026, 2027]
# перебираем значения в порядке убывания до 21
for n in range(2024, 20, -1):
f[n] = n + 3 + f[n+3]
print(f[23] – f[21])

# data[].attributes.body
1) Выделяем столбец С
2) Переходи в раздел Данные-Текст по столбцам
3) Выбираем пункт с разделителями-Далее
4) Выбираем пункт точка с запятой-Далее
5) Готово
6) В пустой столбец (F или E) Вписываем формулу:
=B2+МАКС(ЕСЛИ(C2;ВПР(C2;A:F;6;0);ЕСЛИ(D2;ВПР(D2;A:F;6;0);ЕСЛИ(E2;ВПР(E2;A:F;6;0)))))

# data[].attributes.headline
Шаблон(досрок)

# data[].attributes.subject
Шаблон(досрок)

# data[].attributes.body
from fnmatch import fnmatch
for x in range(0, 10**8, 273):
if fnmatch(str(x), '12??36*1'):
print(x, x // 273)

# data[].attributes.body
1) Переписываем код изменив условие вывода
from itertools import product
print('XYZW')
for x,y,z,w in product((0,1),repeat=4):
if #Условие
print(x,y,z,w)
2) Сопоставляем с таблицей из задания
Пример:
https://youtu.be/Ap90OMj8o1w?t=152

# data[].attributes.attachment_link.authors[].name
Артем Имаев | Информатика ЕГЭ | 100балльный

# data[].attributes.attachment_link.title
2 задание за 4 минуты на Python, Pascal, C++ | ЕГЭ по информатике - Артём FLASH Имаев

# data[].attributes.headline
решение 17 задания из варианта Якунина

# data[].attributes.subject
решение 17 задания из варианта Якунина

# data[].attributes.body
f=open('17.txt')
a=[]
r=''
mx=0
for x in f:
    a.append(int(x))
    n=x.count('1')+x.count('2')*2+x.count('3')*3+x.count('4')*4+x.count('5')*5+x.count('6')*6+x.count('7')*7+x.count('8')*8+x.count('9')*9
    if n>mx:
        mx=n
        r=x
summa=(r.count('1')+r.count('2')*2+r.count('3')*3+r.count('4')*4+r.count('5')*5+r.count('6')*6+r.count('7')*7+r.count('8')*8+r.count('9')*9)
print(summa)
kol=0
naib=0
for i in range(0,len(a)):
    b=bin(a[i])[2:]
    s=b.count('1')
    if summa%s==0:
        kol+=1
        if a[i]>naib:
            naib=a[i]
print(kol,naib)

# data[].attributes.headline
Самый изи тип

# data[].attributes.subject
Самый изи тип

# data[].attributes.body
Задание №14
Значение выражения 283³⁸² + 9¹⁵+2³ записали в системе счисления с основанием 14. Определите модуль разности между количеством цифр В и С в записи этого числа.

#Алгоритм решения
num = 283**382+9**15+2**3#Число которе нужно перевести
step = 14 #Система счиления в которую нужно перевести
r = ''#ответ
while num>0:
r = '0123456789ABCDEF'[num%step] + r
num = num//step
print(abs(r.count('B')-r.count('C')))

# data[].attributes.headline
решение при F = 0

# data[].attributes.subject
решение при F = 0