Тема 27. Программирование
27.08 Макс/мин, кол-во пар, сумма/разность/произведение кратно/не кратно на расстоянии
Вспоминай формулы по каждой теме
Решай новые задачи каждый день
Вдумчиво разбирай решения
ШКОЛКОВО.
Готовиться с нами - ЛЕГКО!
Подтемы раздела программирование
Решаем задачи

Ошибка.
Попробуйте повторить позже

Задача 1#86189

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются тройки различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 99 (расстояние – разность порядковых номеров). Необходимо определить максимальную сумму такой тройки, кратную 123. Причём каждый элемент тройки должен делиться на 3 без остатка.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’10_27B_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 99
k = 123
# Список из максимальных чисел с определенным остатком от деления
t = [-1] * k
# Список из пар с максимальными суммами c определенным остатком
v = [[-1, -1] for i in range(k)]
mx = -1
for i in range(d * 2, len(a)):
    if a[i - d * 2] % 3 == 0:
        # Обрабатываем элемент на расстоянии 2*d от текущего
        ost1 = a[i - d * 2] % k
        # Если он больше прошлого с таким остатком - обновляем список
        t[ost1] = max(t[ost1], a[i - d * 2])

    if a[i - d] % 3 == 0:
        # Обрабатываем средний элемент - на расстоянии d от текущего
        ost2 = a[i - d] % k
        # Для каждого из максимальных первых элементов (для каждого остатка)
        # создаём новые суммы с новым средним элементом и обновляем
        # эти суммы в списке v, если они получились больше прошлых
        for j in range(k):
            if t[j] > -1:
                sm_pair = t[j] + a[i - d]
                if sm_pair > sum(v[(j + ost2) % k]):
                    v[(j + ost2) % k] = [t[j], a[i - d]]
    if a[i] % 3 == 0:
        # Вычисляем остаток для пары в сумму к нашему числу
        ost3 = (k - (a[i] % k)) % k
        # Если уже нашлось число с таким остатком - считаем и обновляем максимум
        if sum(v[ost3]) > -1:
            sm = a[i] + sum(v[ost3])
            if sm > mx:
                mx = sm

print(mx)

Ответ: 2912886 2999970

Ошибка.
Попробуйте повторить позже

Задача 2#86188

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются тройки различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 85 (расстояние – разность порядковых номеров). Необходимо определить минимальную сумму такой тройки, кратную 555.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’9_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 85
k = 555
# Список из минимальных чисел с определенным остатком от деления
t = [10 ** 10] * k
# Список из пар с минимальными суммами c определенным остатком
v = [[10 ** 10, 10 ** 10] for i in range(k)]
mn = 10 ** 10
for i in range(d * 2, len(a)):
    # Обрабатываем элемент на расстоянии 2*d от текущего
    ost1 = a[i - d * 2] % k
    # Если он больше прошлого с таким остатком - обновляем список
    t[ost1] = min(t[ost1], a[i - d * 2])

    # Обрабатываем средний элемент - на расстоянии d от текущего
    ost2 = a[i - d] % k
    # Для каждого из максимальных первых элементов (для каждого остатка)
    # создаём новые суммы с новым средним элементом и обновляем
    # эти суммы в списке v, если они получились больше прошлых
    for j in range(k):
        if t[j] < 10 ** 10:
            sm_pair = t[j] + a[i - d]
            if sm_pair < sum(v[(j + ost2) % k]):
                v[(j + ost2) % k] = [t[j], a[i - d]]

    # Вычисляем остаток для пары в сумму к нашему числу
    ost3 = (k - (a[i] % k)) % k
    # Если уже нашлось число с таким остатком - считаем и обновляем максимум
    if sum(v[ost3]) < 10 ** 10:
        sm = a[i] + sum(v[ost3])
        if sm < mn:
            mn = sm

print(mn)

Ответ: 51060 555

Ошибка.
Попробуйте повторить позже

Задача 3#86187

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются тройки различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 35 (расстояние – разность порядковых номеров). Необходимо определить максимальную сумму такой тройки, кратную 937.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’8_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 35
k = 937
# Список из максимальных чисел с определенным остатком от деления
t = [-1] * k
# Список из пар с максимальными суммами c определенным остатком
v = [[-1, -1] for i in range(k)]
mx = -1
for i in range(d * 2, len(a)):
    # Обрабатываем элемент на расстоянии 2*d от текущего
    ost1 = a[i - d * 2] % k
    # Если он больше прошлого с таким остатком - обновляем список
    t[ost1] = max(t[ost1], a[i - d * 2])

    # Обрабатываем средний элемент - на расстоянии d от текущего
    ost2 = a[i - d] % k
    # Для каждого из максимальных первых элементов (для каждого остатка)
    # создаём новые суммы с новым средним элементом и обновляем
    # эти суммы в списке v, если они получились больше прошлых
    for j in range(k):
        if t[j] > -1:
            sm_pair = t[j] + a[i - d]
            if sm_pair > sum(v[(j + ost2) % k]):
                v[(j + ost2) % k] = [t[j], a[i - d]]

    # Вычисляем остаток для пары в сумму к нашему числу
    ost3 = (k - (a[i] % k)) % k
    # Если уже нашлось число с таким остатком - считаем и обновляем максимум
    if sum(v[ost3]) > -1:
        sm = a[i] + sum(v[ost3])
        if sm > mx:
            mx = sm

print(mx)

Ответ: 2977786 2999337

Ошибка.
Попробуйте повторить позже

Задача 4#86186

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 70 (расстояние – разность порядковых номеров). Необходимо определить максимальную сумму кратную 7654 элементов пары, имеющих одинаковые остатки от деления на 3.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’7_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 70
k = 7654
r = 3
# Список из максимальных чисел с определенным остатком от деления
t = [[-1] * k for i in range(r)]
mx = -1
for i in range(d, len(a)):
    # Обрабатываем элемент на расстоянии d от текущего
    ost1 = a[i - d] % k
    ost1_1 = a[i - d] % r
    # Если он больше прошлого с таким остатком - обновляем список
    t[ost1_1][ost1] = max(t[ost1_1][ost1], a[i - d])

    # Вычисляем остаток для пары нашего числа
    ost2 = (k - (a[i] % k)) % k
    ost2_1 = a[i] % r
    # Если уже нашлось число с таким остатком - считаем и обновляем минимум
    if t[ost2_1][ost2] > -1:
        sm = a[i] + t[ost2_1][ost2]
        if sm > mx:
            mx = sm

print(mx)

Ответ: 1630302 1997694

Ошибка.
Попробуйте повторить позже

Задача 5#86185

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не более 59 (расстояние – разность порядковых номеров). Необходимо определить минимальную кратную 689 сумму элементов пары, имеющих одинаковые первые две цифры.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’6_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 59
k = 689
# Список из элементов на нужном расстоянии
lst = []
mn = 10 ** 10
for i in range(len(a)):
    # Считываем текущий элемент
    a1 = a[i]
    # Проходимся по d элементов до текущего
    for a2 in lst:
        # Если сумма удовлетворяет условию - обновляем минимум
        if (a1 + a2) % k == 0 and str(a1)[:2] == str(a2)[:2]:
            mn = min(mn, a1 + a2)
    # Добавляем текущий элемент в массив
    lst.append(a1)
    # Убираем элемент, который будет слишком далеко для нового элемента
    if len(lst) > d:
        lst.pop(0)

print(mn)

Ответ: 247351 50986

Ошибка.
Попробуйте повторить позже

Задача 6#86184

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не более 28 (расстояние – разность порядковых номеров). Необходимо определить максимальную сумму элементов пары, кратную 777.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’5_27B_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 28
k = 777
# Список из элементов на нужном расстоянии
lst = []
mx = -1
for i in range(len(a)):
    # Считываем текущий элемент
    a1 = a[i]
    # Проходимся по d элементов до текущего
    for a2 in lst:
        # Если сумма удовлетворяет условию - обновляем максимум
        if (a1 + a2) % k == 0:
            mx = max(mx, a1 + a2)
    # Добавляем текущий элемент в массив
    lst.append(a1)
    # Убираем элемент, который будет слишком далеко для нового элемента
    if len(lst) > d:
        lst.pop(0)

print(mx)

Ответ: 1929291 1994559

Ошибка.
Попробуйте повторить позже

Задача 7#86183

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 100 (расстояние – разность порядковых номеров). Необходимо определить минимальную сумму элементов пары, кратную 5693.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’4_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 100
k = 5693
# Список из минимальных чисел с определенным остатком от деления
t = [10 ** 10] * k
mn = 10 ** 10
for i in range(d, len(a)):
    # Обрабатываем элемент на расстоянии d от текущего
    ost1 = a[i - d] % k
    # Если он меньше прошлого с таким остатком - обновляем список
    t[ost1] = min(t[ost1], a[i - d])

    # Вычисляем остаток для пары нашего числа
    ost2 = (k - (a[i] % k)) % k
    # Если уже нашлось число с таким остатком - считаем и обновляем минимум
    if t[ost2] < 10 ** 10:
        sm = a[i] + t[ost2]
        if sm < mn:
            mn = sm

print(mn)

Ответ: 153711 5693

Ошибка.
Попробуйте повторить позже

Задача 8#86182

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 67 (расстояние – разность порядковых номеров). Необходимо определить максимальную разность элементов пары, кратную 876 (под разностью понимать любую положительную разность между любыми двумя подходящими под условие элементами последовательности).

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N            6
(1 ≤ N ≤ 10 )  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’3_27B_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 67
k = 876
# Список из минимальных чисел с определенным остатком от деления
tmn = [10 ** 10] * k
# Список из максимальных чисел с определенным остатком от деления
tmx = [-1] * k
mx = -1
for i in range(d, len(a)):
    # Обрабатываем элемент на расстоянии d от текущего
    ost1 = a[i - d] % k
    # Если он меньше прошлого с таким остатком - обновляем список минимумов
    tmn[ost1] = min(tmn[ost1], a[i - d])
    # Если он больше прошлого с таким остатком - обновляем список максимумов
    tmx[ost1] = max(tmx[ost1], a[i - d])

    # Вычисляем остаток для пары нашего числа
    ost2 = a[i] % k
    # Если уже нашлось минимальное число с таким остатком - считаем разность и обновляем максимум
    if tmn[ost2] < 10 ** 10:
        rz = a[i] - tmn[ost2]
        if rz > mx:
            mx = rz
    # Если уже нашлось максимальное число с таким остатком - считаем разность и обновляем максимум
    if tmx[ost2] > -1:
        rz = tmx[ost2] - a[i]
        if rz > mx:
            mx = rz

print(mx)

Ответ: 951336 999516

Ошибка.
Попробуйте повторить позже

Задача 9#86181

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 38 (расстояние – разность порядковых номеров). Необходимо определить максимальную разность элементов пары, кратную 456 (под разностью понимать вычитание из элемента, находящегося позже в последовательности, того элемента, который встречается раньше в последовательности).

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N            6
(1 ≤ N ≤ 10 )  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’2_27B_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 38
k = 456
# Список из минимальных чисел с определенным остатком от деления
t = [10 ** 10] * k
mx = -1
for i in range(d, len(a)):
    # Обрабатываем элемент на расстоянии d от текущего
    ost1 = a[i - d] % k
    # Если он меньше прошлого с таким остатком - обновляем список
    t[ost1] = min(t[ost1], a[i - d])

    # Вычисляем остаток для пары нашего числа
    ost2 = a[i] % k
    # Если уже нашлось число с таким остатком - считаем разность и обновляем максимум
    if t[ost2] < 10 ** 10:
        rz = a[i] - t[ost2]
        if rz > mx:
            mx = rz

print(mx)

Ответ: 917472 999552

Ошибка.
Попробуйте повторить позже

Задача 10#86180

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 45 (расстояние – разность порядковых номеров). Необходимо определить максимальную сумму элементов пары, кратную 1234.

Входные данные: Даны два входных файла, каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 106)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’1_27A_pairs.txt’)
n = int(f.readline())
a = [int(i) for i in f]
d = 45
k = 1234
# Список из максимальных чисел с определенным остатком от деления
t = [-1] * k
mx = -1
for i in range(d, len(a)):
    # Обрабатываем элемент на расстоянии d от текущего
    ost1 = a[i - d] % k
    # Если он больше прошлого с таким остатком - обновляем список
    t[ost1] = max(t[ost1], a[i - d])

    # Вычисляем остаток для пары нашего числа
    ost2 = (k - (a[i] % k)) % k
    # Если уже нашлось число с таким остатком - считаем сумму и обновляем максимум
    if t[ost2] > -1:
        sm = a[i] + t[ost2]
        if sm > mx:
            mx = sm

print(mx)

Ответ: 1931210 1999080

Ошибка.
Попробуйте повторить позже

Задача 11#85481

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не более чем 11, в которых сумма элементов кратна 2150 либо сумма квадратов элементов кратна 1300.

Входные данные: Даны два входных файла: файл A (27-A_10.txt) и файл В (27-B_10.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_10.txt’)
n = int(f.readline())
mas = []
count = 0
for i in range(n):
    a1 = int(f.readline())
    for a2 in mas:
        if (a1+a2) % 2150 == 0 or (a1**2 + a2**2) % 1300 == 0:
            count += 1
    mas += [a1]
    if len(mas) > 11:
        mas.pop(0)
print(count)

Ответ: 8 470

Ошибка.
Попробуйте повторить позже

Задача 12#85480

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не более чем 23, сумма которых кратна 4318, а произведение остатков от деления чисел на 5 – кратно трем.

Входные данные: Даны два входных файла: файл A (27-A_9.txt) и файл В (27-B_9.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_9.txt’)
n = int(f.readline())
mas = []
count = 0
for i in range(n):
    a1 = int(f.readline())
    for a2 in mas:
        if (a1+a2) % 4318 == 0 and ((a1 % 5) * (a2 % 5)) % 3 == 0:
            count += 1
    mas += [a1]
    if len(mas) > 23:
        mas.pop(0)
print(count)

Ответ: 2 3399

Ошибка.
Попробуйте повторить позже

Задача 13#85479

Имеется набор данных, состоящий из положительных целых чисел. Необходимо определить количество пар элементов (ai.aj)  этого набора, в которых 1 ≤ i+ 17 ≤ j ≤ N  и сумма элементов кратна 4879.

Входные данные: Даны два входных файла: файл A (27-A_8.txt) и файл В (27-B_8.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_8.txt’)
n = int(f.readline())
a = [int(i) for i in f]
r = 0
c = [0]*4879
for i in range(n-17):
    c[a[i] % 4879] += 1
    r += c[(4879 - a[i+17] % 4879) % 4879]
print(r)

Ответ: 0 102459112

Ошибка.
Попробуйте повторить позже

Задача 14#85478

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются тройки различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 20 (расстояние – разность порядковых номеров). Необходимо определить количество троек последовательности, сумма которых кратна 5432.

Входные данные: Даны два входных файла: файл A (27-A_7.txt) и файл В (27-B_7.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_7.txt’)
n = int(f.readline())
a = [int(i) for i in f]
ost = [0]*5432
res = [0]*5432
count = 0
for i in range(40, n):
    ost[a[i-40]%5432] += 1
    for j in range(5432):
        res[(j+a[i-20])%5432] += ost[j]
    count += res[(5432-a[i]%5432)%5432]
print(count)

Ответ: 9 30319403

Ошибка.
Попробуйте повторить позже

Задача 15#85477

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не более чем 15, сумма которых кратна 474, а сумма единиц – четна.

Входные данные: Даны два входных файла: файл A (27-A_6.txt) и файл В (27-B_6.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно целое число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_6.txt’)
n = int(f.readline())
mas = []
count = 0
for i in range(n):
    a1 = int(f.readline())
    for a2 in mas:
        if abs(a1+a2) % 474 == 0 and (abs(a1 % 10) + abs(a2 % 10)) % 2 == 0:
            count += 1
    mas += [a1]
    if len(mas) > 15:
        mas.pop(0)
print(count)

Ответ: 6 345

Ошибка.
Попробуйте повторить позже

Задача 16#85476

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не более чем 19, разность которых кратна 897 и элементы пары имеют одинаковую четность.

Входные данные: Даны два входных файла: файл A (27-A_5.txt) и файл В (27-B_5.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_5.txt’)
n = int(f.readline())
mas = []
count = 0
for i in range(n):
    a1 = int(f.readline())
    for a2 in mas:
        if (abs(a1-a2)) % 897 == 0 and a1 % 2 == a2 % 2:
            count += 1
    mas += [a1]
    if len(mas) > 19:
        mas.pop(0)
print(count)

Ответ: 13 20208

Ошибка.
Попробуйте повторить позже

Задача 17#85475

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не более чем 12, сумма которых кратна 318 и хотя бы одно из чисел нечетно.

Входные данные: Даны два входных файла: файл A (27-A_4.txt) и файл В (27-B_4.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_4.txt’)
n = int(f.readline())
mas = []
count = 0
for i in range(n):
    a1 = int(f.readline())
    for a2 in mas:
        if (a1+a2) % 318 == 0 and (a1 % 2 != 0 or a2 % 2 != 0):
            count += 1
    mas += [a1]
    if len(mas) > 12:
        mas.pop(0)
print(count)

Ответ: 4 181

Ошибка.
Попробуйте повторить позже

Задача 18#85474

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются все пары различных элементов последовательности. Необходимо определить количество пар чисел, находящихся на расстоянии не менее чем 10, произведение которых четно, а разность кратна 980.

Входные данные: Даны два входных файла: файл A (27-A_3.txt) и файл В (27-B_3.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_3.txt’)
n = int(f.readline())
a = [int(x) for x in f]
ch, nch = [0]*980, [0]*980
k = 0
for i in range(10, n):
      ostat = a[i-10] % 980
      ostat2 = a[i] % 980
      if a[i-10] % 2 == 0:
            ch[ostat] += 1
      else:
            nch[ostat] += 1
      if a[i] % 2 == 0:
            k += ch[ostat2] + nch[ostat2]
      else:
            k += ch[ostat2]
print(k)

Ответ: 2 25274

Ошибка.
Попробуйте повторить позже

Задача 19#85473

Имеется набор данных, состоящий из положительных целых чисел. Необходимо определить количество пар элементов (ai.aj)  этого набора, в которых 1 ≤ i+ 9 ≤ j ≤ N  и сумма элементов кратна 1319.

Входные данные: Даны два входных файла: файл A (27-A_2.txt) и файл В (27-B_2.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_2.txt’)
n = int(f.readline())
a = [int(i) for i in f]
r = 0
c = [0]*1319
for i in range(n-9):
    c[a[i] % 1319] += 1
    r += c[(1319 - a[i+9] % 1319) % 1319]
print(r)

Ответ: 78 33962

Ошибка.
Попробуйте повторить позже

Задача 20#85472

На вход программы поступает последовательность из N целых положительных чисел. Рассматриваются тройки различных элементов последовательности, в которых между любыми двумя элементами расстояние не менее 18 (расстояние – разность порядковых номеров). Необходимо определить количество троек последовательности, сумма которых кратна 3560.

Входные данные: Даны два входных файла: файл A (27-A_1.txt) и файл В (27-B_1.txt), каждый из которых содержит в первой строке количество пар N (1 ≤ N ≤ 100000)  . Каждая из следующих N строк содержит одно натуральное число.

Вложения к задаче
Показать ответ и решение
f = open(’27B_1.txt’)
n = int(f.readline())
a = [int(i) for i in f]
ost = [0]*3560
res = [0]*3560
count = 0
for i in range(36, n):
    ost[a[i-36]%3560] += 1
    for j in range(3560):
        res[(j+a[i-18])%3560] += ost[j]
    count += res[(3560-a[i]%3560)%3560]
print(count)

Ответ: 237 127481010
Рулетка
Вы можете получить скидку в рулетке!