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

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

Задача 1#85234

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  . Необходимо определить минимальную сумму среди всех пар, которая будет кратна 586.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_10.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mn = 10000000
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] < mn and (arr[i] + arr[j]) % 586 == 0:
            mn = arr[i] + arr[j]
print(mn)

Решение для файла B:

f = open(’27B_10.txt’)
n = int(f.readline())
d = 586
mn = 10000000
a = [10000000]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t < mn and a[(d - (t % d)) % d] != 10000000 and a[(d - (t % d)) % d] < t:
        mn = a[(d - (t % d)) % d] + t
    if t < a[t % d]:
        a[t % d] = t
print(mn)

Ответ: 586 2344

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

Задача 2#85233

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai > aj  , при этом хотя бы одно число должно быть больше 169. Необходимо определить минимальную сумму среди всех пар, которая будет кратна 57.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_9.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mn = 10000000
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] > arr[j] and arr[i] + arr[j] < mn and (arr[i] + arr[j]) % 57 == 0 and (arr[i] > 169 or arr[j] > 169):
            mn = arr[i] + arr[j]
print(mn)

Решение для файла B:

# так как хотя бы одно число должно быть больше 169, а a_i > a_j, то если a_i будет меньше 169, то и a_j будет больше 169,
# чтобы соблюсти условие, поэтому в список a будем сохранять только числа меньшие 169
f = open(’27B_9.txt’)
n = int(f.readline())
d = 57
mn = 1000000
a = [1000000]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t < mn and a[(d - (t % d)) % d] != 1000000 and a[(d - (t % d)) % d] > t:
        mn = a[(d - (t % d)) % d] + t
    if t < a[t % d] and t > 169:
        a[t % d] = t
print(mn)

Ответ: 285 171

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

Задача 3#85232

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  , при этом оба числа должны быть меньше 666. Необходимо определить максимальную сумму среди всех пар, которая будет кратна 89.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_8.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mx = -1
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] > mx and (arr[i] + arr[j]) % 89 == 0 and arr[i] < 666 and arr[j] < 666:
            mx = arr[i] + arr[j]
print(mx)

Решение для файла B:

f = open(’27B_8.txt’)
n = int(f.readline())
d = 89
mx = -1
a = [-1]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t > mx and a[(d - (t % d)) % d] != -1 and a[(d - (t % d)) % d] < t and t < 666:
        mx = a[(d - (t % d)) % d] + t
    if t > a[t % d] and t < 666:
        a[t % d] = t
print(mx)

Ответ: 1157 1246

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

Задача 4#85231

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai > aj  . Необходимо определить максимальную сумму среди всех пар, которая будет кратна 411.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_7.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mx = -1
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] > arr[j] and arr[i] + arr[j] > mx and (arr[i] + arr[j]) % 411 == 0:
            mx = arr[i] + arr[j]
print(mx)

Решение для файла B:

f = open(’27B_7.txt’)
n = int(f.readline())
d = 411
mx = -1
a = [-1]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t > mx and a[(d - (t % d)) % d] != -1 and a[(d - (t % d)) % d] > t:
        mx = a[(d - (t % d)) % d] + t
    if t > a[t % d]:
      a[t % d] = t
print(mx)

Ответ: 1644 19728

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

Задача 5#85230

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  . Необходимо определить минимальную сумму среди всех пар, которая будет кратна 90.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_6.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mn = 10000000
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] < mn and (arr[i] + arr[j]) % 90 == 0:
            mn = arr[i] + arr[j]
print(mn)

Решение для файла B:

f = open(’27B_6.txt’)
n = int(f.readline())
d = 90
mn = 10000000
a = [10000000]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t < mn and a[(d - (t % d)) % d] != 10000000 and a[(d - (t % d)) % d] < t:
        mn = a[(d - (t % d)) % d] + t
    if t < a[t % d]:
        a[t % d] = t
print(mn)

Ответ: 90 2070

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

Задача 6#85229

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  , при этом хотя бы одно число должно быть меньше 90. Необходимо определить максимальную сумму среди всех пар, которая будет кратна 172.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_5.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mx = -1
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] > mx and (arr[i] + arr[j]) % 172 == 0 and (arr[i] < 90 or arr[j] < 90):
            mx = arr[i] + arr[j]
print(mx)

Решение для файла B:

# так как хотя бы одно число должно быть меньше 90, а a_i < a_j, то если a_i будет больше 90, то и a_j будет больше 90,
# чтобы соблюсти условие, поэтому в список a будем сохранять только числа меньшие 90
f = open(’27B_5.txt’)
n = int(f.readline())
d = 172
mx = -1
a = [-1]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t > mx and a[(d - (t % d)) % d] != -1 and a[(d - (t % d)) % d] < t:
        mx = a[(d - (t % d)) % d] + t
    if t > a[t % d] and t < 90:
        a[t % d] = t
print(mx)

Ответ: 1032 9976

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

Задача 7#85228

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai > aj  . Необходимо определить максимальную сумму среди всех пар, которая будет кратна 88.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_4.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mx = -1
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] > arr[j] and arr[i] + arr[j] > mx and (arr[i] + arr[j]) % 88 == 0:
            mx = arr[i] + arr[j]
print(mx)

Решение для файла B:

f = open(’27B_4.txt’)
n = int(f.readline())
d = 88
mx = -1
a = [-1]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t > mx and a[(d - (t % d)) % d] != -1 and a[(d - (t % d)) % d] > t:
        mx = a[(d - (t % d)) % d] + t
    if t > a[t % d]:
        a[t % d] = t
print(mx)

Ответ: 1760 19976

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

Задача 8#85227

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai > aj  , при этом оба числа должны быть больше 45. Необходимо определить минимальную сумму среди всех пар, которая будет кратна 63.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_3.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mn = 10000000
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] > arr[j] and arr[i] + arr[j] < mn and (arr[i] + arr[j]) % 63 == 0 and arr[i] > 45 and arr[j] > 45:
            mn = arr[i] + arr[j]
print(mn)

Решение для файла B:

f = open(’27B_3.txt’)
n = int(f.readline())
d = 63
mn = 10000000
a = [10000000]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t < mn and a[(d - (t % d)) % d] != 10000000 and a[(d - (t % d)) % d] > t and t > 45:
        mn = a[(d - (t % d)) % d] + t
    if t < a[t % d] and t > 45:
        a[t % d] = t
print(mn)

Ответ: 189 126

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

Задача 9#85226

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  . Необходимо определить минимальную сумму среди всех пар, которая будет кратна 224.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_2.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mn = 10000000
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] < mn and (arr[i] + arr[j]) % 224 == 0:
            mn = arr[i] + arr[j]
print(mn)

Решение для файла B:

f = open(’27B_2.txt’)
n = int(f.readline())
d = 224
mn = 10000000
a = [10000000]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t < mn and a[(d - (t % d)) % d] != 10000000 and a[(d - (t % d)) % d] < t:
        mn = a[(d - (t % d)) % d] + t
    if t < a[t % d]:
        a[t % d] = t
print(mn)

Ответ: 224 2016

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

Задача 10#85225

Имеется набор данных из N  целых чисел. Рассматриваются все пары различных элементов последовательности такие что 1 ≤ i < j ≤ N  и ai < aj  . Необходимо определить максимальную сумму среди всех пар, которая будет кратна 139.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Решение для файла A:

f = open(’27A_1.txt’)
n = int(f.readline())
arr = list(map(int, f.read().split()))
mx = -1
for i in range(n-1):
    for j in range(i+1, n):
        if arr[i] < arr[j] and arr[i] + arr[j] > mx and (arr[i] + arr[j]) % 139 == 0:
            mx = arr[i] + arr[j]
print(mx)

Решение для файла B:

f = open(’27B_1.txt’)
n = int(f.readline())
d = 139
mx = -1
a = [-1]*d
for i in range(n):
    t = int(f.readline())
    if a[(d - (t % d)) % d] + t > mx and a[(d - (t % d)) % d] != -1 and a[(d - (t % d)) % d] < t:
        mx = a[(d - (t % d)) % d] + t
    if t > a[t % d]:
      a[t % d] = t
print(mx)

Ответ: 1946 19877

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

Задача 11#84859

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 199.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 199 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 199 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 96 9045539

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

Задача 12#84858

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 457.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 457 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 457 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 134 2522565

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

Задача 13#84856

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 221.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 221 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 221 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 92 8142930

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

Задача 14#84854

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 891.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 891 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 891 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 41 1403165

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

Задача 15#84853

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 375.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 375 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 375 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 54 6530490

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

Задача 16#84852

Дано число N, затем N натуральных чисел. Требуется найти количество пар чисел, сумма которых кратна 93.

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение

Для А

s = open(’27.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
cnt = 0
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]+arr[j]) % 93 == 0:
            cnt += 1
print(cnt)

Для Б

with open(’27.txt’) as f:
    n = int(f.readline())
    count = 0
    D = 93 # Делитель ,который мы должны проверить
    k = [0]*D # массив,в котором каждый элемент- это количество чисел с определенном остатком от D
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x+d) % D == 0:
                count += k[d]#прибавляем к счетчику значение в списке k под индексом остатка
        k[x % D] += 1# увеличиваем определенное значение в списке,в зависимости от того,чему равен остаток x от D
print(count)

Ответ: 1334 52687548

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

Задача 17#74975

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

В первой строке входных данных задаётся количество чисел N  (1 ≤ N ≤ 10000)  . В каждой из последующих  N  строк записано одно целое положительное число, не превышающее 10  000  .

В ответе укажите два числа через пробел: сначала значение искомой суммы для файла A, затем для файла B.

Вложения к задаче
Показать ответ и решение
#Решение А
with open(’A.txt’, ’r’) as file: #чтение файла
    n = int(file.readline())
    nums = list(map(int, file.read().split()))
max_sum = 0
for i in range(n): #первое число в паре
    for j in range(i+1, n): #второе число в паре
        pair_sum = nums[i] + nums[j] #сумма чисел
        if pair_sum % 191 == 0 and pair_sum > max_sum: #проверка, что сумма делится на 191 и максимальна
            max_sum = pair_sum
print(max_sum)

#Решение Б
f = open(’8_B__2rctr.txt’)#Чтение файла
n = int(f.readline())
D = 191#Делитель
mx = [0]*D#Список,в котором будут храниться максимальные числа в зависимости от остатка числа при делении на 191
ans = 0
for i in range(n):
    x = int(f.readline())
    for d in range(D):#Проход по всевозможным остаткам при делении на 191
        if (x+d) % D == 0:#Если нашелся такой остаток, при котором x + остаток кратен 191
            ans = max(ans,x+mx[d])#то сравниваем на максимум текущее число x + максимальное число из списка mx под индексом d
    mx[x%D]  = max(mx[x%D],x)#Записываем максимальные числа в mx в зависимости от остатка x при делении на 191
print(ans)

Ответ: 182214 199786

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

Задача 18#74974

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

В ответе укажите два числа через пробел: сначала значение для файла А, затем через пробел значение для файла B.

Вложения к задаче
Показать ответ и решение

Примечание. Для файла B необходимо заменить первую строку кода.

f = open("1.txt")
n = int(f.readline())
k=[0]*177
for i in range(n):
    x=int(f.readline())
    k[x%177]+=1
count = 0
for i in range(177):
    count+=k[i]*(k[i]-1)//2
print(count)

Ответ: 5520 114020130923

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

Задача 19#74970

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

В первой строке входных данных задаётся количество чисел N  (1 ≤ N ≤ 100000)  . В каждой из последующих   N  строк записано одно целое положительное число, не превышающее 10000.

В ответе укажите два числа через пробел: сначала значение искомого количества для файла A, затем для файла B.

Вложения к задаче
Показать ответ и решение
f = open(’27B.txt’)
n = int(f.readline())
ans = 0
kr = [0]*9

for i in range(n):
    x = int(f.readline())
    for j in range(9):
        if (x + j) % 9 != 0:
            ans += kr[j]
    kr[x % 9] += 1

print(ans)

Ответ: 385 44437383

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

Задача 20#73359

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

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

Пример входного файла:

6

9

7

4

2

8

3

Для указанных входных данных количество подходящих пар должно быть равно 13.

В ответе укажите два числа без разделительных знаков: сначала количество подходящих пар для файла А, затем для файла B.

Вложения к задаче
Показать ответ и решение
#переборный алгоритм:
f = open(’6_A.txt’)
n = int(f.readline())

counter = 0
a = []
for i in range(n):
    a += [int(f.readline())]

for i in range(0,len(a) - 1):
    for j in range(i+1,len(a)):
        if (a[i]+a[j]) % 12 != 0:
            counter += 1
print(counter)

#эффективный алгоритм:
f = open(’6_B.txt’)
n = int(f.readline())

k = 12
counter = 0
prop = [0] * k
a = int(f.readline())
for i in range(n - 1):

    for x in range(k):
        prop[x] += int(a % k == x)

    y = int(f.readline())
    a = y
    ost = y % k
    for j in range(k):
        if (j+ost) != k and (j+ost) != 0:
            counter += prop[j]

print(counter)

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