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

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

Задача 1#74968

Имеется набор данных, состоящий из положительных целых чисел. Необходимо определить максимальное четное произведение R двух элементов.

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

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

Вложения к задаче
Показать ответ и решение
#переборный алгоритм:
f = open(’1_A.txt’)
n = int(f.readline())
a = []
for i in range(n):
    a.append(int(f.readline()))

maxi = 0
for i in range(0,len(a)-1):
    for j in range(i+1,len(a)):
        if (a[i]*a[j]) % 2 == 0:
            maxi = max(maxi, a[i]*a[j])
print(maxi)

#эффективный алгоритм:
f = open(’1_B.txt’)
n = int(f.readline())
x = []
ost = []
maxi = 0
for i in range(n):
    a = int(f.readline())
    x.append(a)
    if a % 2 == 0:
        ost.append(a)
x = sorted(x)
if ost != []:
    if max(ost) == max(x):
        maxi = max(ost)*x[-2]
    else:
        maxi = max(ost)*x[-1]
print(maxi)

Ответ: 886788 997002

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

Задача 2#63855

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

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

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

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

    f = open("27A_9.txt")
n = int(f.readline())
k,k1,k7,k71=0,0,0,0
for i in range(n):
    x=int(f.readline())
    if x%7==0 and x%2==0:
        k7+=1
    if x%7==0 and x%2!=0:
        k71+=1
    if x%7!=0 and x%2==0:
        k+=1
    if x%7!=0 and x%2!=0:
        k1+=1
print(k7*k71+k7*k1+k*k71)

Ответ: 601 6916429

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

Задача 3#63434

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

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

В ответе укажите два числа: значение для файла А, затем, через пробел, для файла Б. Так же можно указать ответ ТОЛЬКО для файла А.

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

Для А

s = open(’27-5a.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
print(arr)
n = len(arr)
mx = -1
for i in range(n - 1):
    for j in range(i + 1, n):
        if (arr[i]*arr[j]) % 27 == 0 and (arr[i]*arr[j]) % 2 == 0:
            mx = max(mx, arr[i]*arr[j])
print(mx)

Для Б

with open(’27-5b.txt’) as f:
    n = int(f.readline())
    D = 27# Наш делитель
    k = [0]*D #массив,в котором каждый элемент- это максимальное число под определенном остатком от деления на D
    pmax = 0
    for i in range(n):
        x = int(f.readline())
        for d in range(D):# проходимся по нашим остаткам
            if (x * d) % 27 == 0 and (x * d) % 2 == 0:
                pmax = max(pmax, x*k[d]) #если условие выполнено,то сравниваем произведение чисел с максимумом
        k[x % D] = max(k[x % D], x) #Сравниваем нынешнее число с числом в списке k под индексом x % D
print(pmax)

Варианты правильных ответов:
  1. 694710
  2. 694710 999000

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

Задача 4#63433

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

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

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

5

4

13

27

39

7

Для указанных входных данных количество подходящих пар должно быть равно 2. В приведённом наборе имеются две пары (4, 13) и (4, 39), сумма элементов которых нечётна, и произведение кратно 13.

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

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

Для А

s = open(’27-4a.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]) % 13 == 0 and (arr[i]+arr[j]) % 2 != 0:
            cnt += 1
print(cnt)

Для Б

s = open(’27-4b.txt’, ’r’).readlines()[1:]
arr = []
for i in range(len(s)):
    arr.append(int(s[i]))
n = len(arr)
n_ch_k13, ch_k13, n_ch_nk13, ch_nk13 = 0, 0, 0, 0
for i in range(n):
    a = arr[i]
    if a % 13 == 0 and a % 2 == 0:
        ch_k13 += 1
    elif a % 13 == 0 and a % 2 != 0:
        n_ch_k13 += 1
    elif a % 13 != 0 and a % 2 == 0:
        ch_nk13 += 1
    elif a % 13 != 0 and a % 2 != 0:
        n_ch_nk13 += 1

res = ch_k13*n_ch_k13 + ch_k13*n_ch_nk13 + n_ch_k13*ch_nk13
print(res)

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