Задача с сайта https://kpolyakov.spb.ru/
В файле электронной таблицы 9-170.xls в каждой строке содержатся шесть неотрицательных целых чисел. Определите количество строк таблицы, для которых выполнены оба условия:
– в строке хотя бы одно число повторяется дважды (ровно 2 раза);
– каждое из чисел, повторяющихся ровно 2 раза, превышает каждое неповторяющееся (если неповторяющихся чисел в строке нет, это условие считается выполненным).
Программное решение
f = open(’9-170.csv’)
c = 0
for i in f:
a = list(map(int, i.split(’;’)))
# Список, содержащий элементы, которые встречаются ровно 1 раз
t1 = [j for j in a if a.count(j) == 1]
# Список с уникальными элементами, которые встречаются ровно 2 раза
t2 = list({j for j in a if a.count(j) == 2})
# Проверяем условия:
# 1. t2 не пустой (содержит элементы)
# 2. Либо t1 пустой (нет элементов, встречающихся один раз),
# либо минимальный элемент из t2 больше максимального элемента из t1
if t2 and ((not t1) or (min(t2) > max(t1))):
c += 1 # Если условие выполнено, увеличиваем счетчик c на 1
print(c)
Ответ: 665