Задача к ЕГЭ по информатике на тему «Макс/мин, кол-во пар, произведение кратно/не кратно» №3

По каналу связи передавались данные в виде последовательности натуральных чисел, не больших 1000. Количество чисел не больше 106.  Контрольное значение равно такому минимальному возможному произведению двух чисел из переданного набора, делящееся на 7, но не делящееся на 49. Если такого произведения нет, программа должна напечатать -1.

Программа должна напечатать одно число — вычисленное контрольное значение.

Входные данные

В первой строке дано количество чисел N, в каждой из последующих N строк записано одно натуральное число, не превышающее 1000.

В качестве ответа укажите результат выполнения программы на следующих тестах(ответ на каждый тест через пробел):



Тест Входные данные


Первый 4
7
5
2
4


Второй 4
7
7
49
49


Третий 4
14
3
7
14



Переборное решение

f = open("27.txt")
n = int(f.readline())
a = [int(x) for x in f]

ans = 10 ** 20

for i in range(n):
    for j in range(i + 1, n):
        if (a[i] * a[j] % 7 == 0) and (a[i] * a[j] % 49 != 0):
            ans = min(ans, a[i] * a[j])

if ans == 10 ** 20:
    ans = -1
print(ans)

Статическое решение

f = open("27.txt")
n = int(f.readline())

min_kr7 = 10 ** 20  # Минимальное число, кратное 7
min_nekr = 10 ** 20  # Минимальное число, не кратное 7

for i in range(n):
    x = int(f.readline())
    if x % 7 == 0:
        min_kr7 = min(min_kr7, x)
    else:
        min_nekr = min(min_nekr, x)

if min_kr7 == 10 ** 20 or min_nekr == 10 ** 20:
    ans = -1
else:
    ans = min_kr7 * min_nekr
print(ans)

Динамическое решение

f = open("27.txt")
n = int(f.readline())

ans = 10 ** 20
min_kr7 = 10 ** 20  # Минимальное число, кратное 7
min_nekr = 10 ** 20  # Минимальное число, не кратное 7

for i in range(n):
    x = int(f.readline())
    if x % 7 == 0:
        ans = min(ans, x * min_nekr)
        min_kr7 = min(min_kr7, x)
    else:
        ans = min(ans, x * min_kr7)
        min_nekr = min(min_nekr, x)

if ans == 10 ** 20:
    ans = -1
print(ans)

Ответ: 14 -1 21
Оцените статью
Я решу все!