Задача к ЕГЭ по информатике на тему «прочие прототипы» №5

На вход программы поступает последовательность из N  натуральных чисел, все числа в последовательности различны.

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

Уникальным множеством считается то, что встречается один раз (то есть перестановки элементов внутри множества не делают его уникальным).

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

Первая строка входного файла содержит число N  — общее количество чисел. Каждая из следующих N  строк содержит натуральные числа, не превышающих 10 000.

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

5

5

10

15

91

33

Для указанных данных ответом будут являться {5, 10, 15, 91, 33}, то есть 1.

Решение 1

f = open(’27A.txt’)
n = int(f.readline())

nums = []
for i in range(n):
    nums.append(int(f.readline()))

ans = []
for i in range(2**n):
    t = i
    mn = []
    for j in range(n):
        if t % 2 == 1:
            mn.append(nums[j])
        t //= 2
        if len(mn) > 5:
            break

    if len(mn) == 5:
        ans.append(mn)

print(len(ans))

Решение 2

from itertools import combinations

f = open(’27A.txt’)
n = int(f.readline())

nums = []
for i in range(n):
    nums.append(int(f.readline()))

ans = []
for i in combinations(nums, 5):
    ans.append(i)

print(len(ans))

Решение 3

f = open(’27A.txt’)
n = int(f.readline())


def factorial(m):
    c = 1
    for j in range(1, m + 1):
        c *= j
    return c


ans = 0
for i in range(1, n + 1):
    ans += (factorial(20 - i) // ((factorial(4) * factorial(20 - i - 4))))

print(ans)

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