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

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

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

Пример входных данных:

4

11

22

39

99

Выходные данные для приведённого выше примера: 3

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

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

f = open(’4_A.txt’)

n = int(f.readline())
x = [int(i) for i in f]
cnt = 0

for i in range(n):
    for j in range(i + 1, n):
        s1 = str(x[i])
        s2 = str(x[j])
        if s1 == s1[::-1] and s2 == s2[::-1]:
            cnt += 1

print(cnt)

Эффективное решение:

n = int(input())
count_of_palis = 0  # Количество палиндромов
ans = 0
for i in range(n):
    x = int(input())
    if str(x) == str(x)[::-1]:
    
# Если число - палиндром, оно образует пары со всеми ранее встреченными палиндромами
        ans += count_of_palis
        # Увеличиваем количество палиндромов
        count_of_palis += 1
print(ans)

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