Занятия в Москве

Основная информация

Моя анкета на сайте repetit.ru (кликнуть для перехода)
https://www.repetit.ru/repetitor.aspx?id=77475

Контактная информация

Мобильный+WhatsApp+Viber+Telegram:
8-916-122-77-47

Электронная почта:
dmklimkov@gmail.com

Задание 27 #15

Даны N элементов (минимум два).
Найти пару с максимальной суммой, удовлетворяющую условию: остатки от деления на 180 у чисел в паре разные; хотя бы один из элементов пары кратен 7.
1) Числа натуральные.
2) Если нет ни одной подходящей пары вывести «NO».

Наборы тестовых данных для 27 #15

5
361 362 7 364 3
————————
3
4 5 6
————————
3
2 7 7
————————
3
2 7 14
————————
3
367 12 7

Оптимальное решение 27 #15

Отсутствует

Задание 27 #14

https://inf-ege.sdamgia.ru/problem?id=13423
Оптимальное решение 27 #14
maximum = 0
max_summ = 28
n = int(input())
summs = [0] * max_summ
for i in range(n):
    summ = 0
    number = int(input())
    while number > 0:
        summ += number % 10
        number //= 10
    summs[summ] += 1
for i in range(max_summ):
    if summs[i] > maximum:
        maximum = summs[i]
        minimum = i
print(minimum)

Задание 27 #13

https://inf-ege.sdamgia.ru/problem?id=13503
Оптимальное решение 27 #13
n = int(input())
d = 10
maximum = 0
a = [0] * d
for i in range(n):
    number = int(input())
    while number != 0:
        numpart = number % d
        a[numpart] += 1
        numpart = 0
        number //= d
print(a)
maximum = max(a)
for i in reversed(range(d)):
    if a[i] == maximum:
        print(i, end=' ')

Задание 27 #12

https://yandex.ru/tutor/subject/problem/?problem_id=T9304
Оптимальное решение 27 #12
n = int(input())
d = 4
nk = [0] * d
kr = [0] * d
k = 0
for i in range(1, n+1):
    x = int(input())
    if x % 3 == 0:
        if i >= (d+1):
            k += nk[i % d]
        kr[i % d] = kr[(i-1) % d] + 1
        nk[i % d] = nk[(i-1) % d]
    else:
        if i >= (d+1):
            k += kr[i % d]
        nk[i % d] = nk[(i-1) % d] + 1
        kr[i % d] = kr[(i-1) % d]
print(k)

Неоптимальное решение 27 #12
n = int(input())
a = []
d = 4
k = 0
for i in range(n):
    a.append(int(input()))
for i in range(n-d):
    for j in range(i+d, n):
        if (a[i] * a[j]) % 3 == 0 and (a[i]+a[j]) % 3 > 0:
            k += 1
print(k)

Задание 27 #11

© СтатГрад 2019−2020 уч. г.
Оптимальное решение 27 #11
n = int(input())
k = 80
a = [0] * k # количество чисел меньше или равно 100
b = [0] * k # количество чисел больше 100
for i in range(n):
    num = int(input())
    ost = num % k
    if num <= 100:
        a[ost] += 1
    else:
        b[ost] += 1
result = 0
for i in range(k):
    result += a[i]*b[i] + b[i]*(b[i]-1)//2
print(result)

Формула 27 #11
s[i] = a[i] + (a[i]+1) + .. + (a[i]+b[i]-1)
s[i] = a[i]*b[i] + (1 + 2 + .. + (b[i]-1))
s[i] = a[i]*b[i] + b[i]*(b[i]-1)//2
выносить за скобку b[i] нельзя, так как (b[i]-1) может быть нечетным 

Задание 27 #10

https://inf-ege.sdamgia.ru/problem?id=6436
Оптимальное решение 27 #10
k = 16
n = int(input())
msgs = [0]*k
for i in range(n):
    x = int(input())
    msgs[x-1] += 1
pars = list(range(1, k+1))
for i in range(k-1):
    for j in range(i, k):
        if msgs[j] > msgs[i]:
            msgs[i], msgs[j] = msgs[j], msgs[i]
            pars[i], pars[j] = pars[j], pars[i]
    if msgs[i] > 0:
        print(pars[i], msgs[i])

Задание 27 #09

http://kpolyakov.spb.ru/school/ege/gen.php?action=viewAllEgeNo&egeId=27&cat89=on&cat90=on
Оптимальное решение 27 #09
N = int(input()) 
x_max = 0 
y_max = 0 
for i in range(N): 
    x, y = map(int, input().split()) 
    if x == y and abs(x) > x_max: 
        x_max = abs(x) 
    if x == -y and abs(x) > y_max: 
        y_max = abs(x) 
max_square = (x_max * y_max) 
if max_square == 0: 
    print('Треугольник не существует') 
else:
    print(max_square)

Задание 27 #08

http://kpolyakov.spb.ru/school/ege/gen.php?action=viewAllEgeNo&egeId=27&cat89=on&cat90=on
Неоптимальное решение 27 #08
N, t = int(input()), int(input()) 
a = [] 
b = [] 
for i in range(N): 
    ai, bi = map(int, input().split()) 
    a.append(ai) 
    b.append(bi) 

br = 0 
for j in range(N): 
    br += b[j] 
ar = 0 
res = br + t 
for i in range(N): 
    br -= b[i] 
    ar += a[i] 
    if ar + br + t < res: 
        res = ar + br + t 
print(res)

Оптимальное решение 27 #08
n = int(input()) 
road = int(input()) 
a = 0 
b = road 
for i in range(n): 
    ai, bi = list(map(int, input().split())) 
    a += ai 
    b = min(b+bi, a+road) 
print(b)

Задание 27 #07

http://kpolyakov.spb.ru/school/ege/gen.php?action=viewAllEgeNo&egeId=27&cat89=on&cat90=on
Оптимальное решение 27 #07
N = int(input()) 
a = [0]*100 
for i in range(N): 
    d, k = map(int, input().split()) 
    a[k % d] += 1 
if a[0] = N: 
    print(0) 
else: 
    res = 1 
for i in range(2, 100): 
    if a[i] >= a[res]: 
        res = i print(res)

Задание 27 #06

http://kpolyakov.spb.ru/school/ege/gen.php?action=viewAllEgeNo&egeId=27&cat89=on&cat90=on
Оптимальное решение 27 #06
max_7 = 0 
sec_max = 0 
x = int(input()) 
count=0 
while x != 0: 
    count += 1 
    if x % 7 == 0 and x % 49 != 0 and x > max_7: 
        max_7 = x 
    elif x % 7 != 0 and sec_max < x: 
        sec_max = x 
    x = int(input()) 
control = int(input()) 
result = sec_max*max_7 
if result == 0: 
    result = 1 
print(f'Введено чисел: {count}') 
print(f'Контрольное значение: {control}') 
print(f'Вычисленное значение: {result}') 
if result == control: 
    print('Значения совпали') 
else: 
    print('Значения не совпали')