Skip to content
Open
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
211 changes: 211 additions & 0 deletions Homework#9.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,211 @@
#task_1--------------------------------------------------------
'''
Дан список чисел. Определите, сколько в нем встречается
различных чисел.
Примечание. Эту задачу на Питоне можно решить в одну строчку.
'''

A=([int(i) for i in input().split()])

B=len(set(A))

print (B)

#--------------------------------------------------------------

#task_2--------------------------------------------------------
'''
Даны два списка чисел. Посчитайте, сколько чисел содержится
одновременно как в первом списке, так и во втором.
Примечание. Эту задачу на Питоне можно решить в одну строчку.
'''

A=(set(input().split()))

B=(set(input().split()))

A&=B

print (len(set(A)))

#--------------------------------------------------------------


#task_3--------------------------------------------------------
'''
Даны два списка чисел. Найдите все числа, которые входят как
в первый, так и во второй список и выведите их в порядке
возрастания.
Примечание. И даже эту задачу на Питоне можно решить в одну
строчку.
'''

A=set([int(i) for i in input().split()])

B=set([int(i) for i in input().split()])

C=list(A&B)

C.sort()

for elem in C:

print(elem,end=' ')

#--------------------------------------------------------------


#task_4--------------------------------------------------------
'''
Во входной строке записана последовательность чисел через
пробел. Для каждого числа выведите слово YES (в отдельной
строке), если это число ранее встречалось в последовательности
или NO, если не встречалось.
'''

A=input().split()

for i in range (len(A)):

if A[i] in A[:i]:

print ('YES')

else:

print ('NO')

#--------------------------------------------------------------


#task_5--------------------------------------------------------
'''
Аня и Боря любят играть в разноцветные кубики, причем у каждого
из них свой набор и в каждом наборе все кубики различны по
цвету. Однажды дети заинтересовались, сколько существуют цветов
таких, что кубики каждого цвета присутствуют в обоих наборах.
Для этого они занумеровали все цвета случайными числами от 0
до 108. На этом их энтузиазм иссяк, поэтому вам предлагается
помочь им в оставшейся части.
В первой строке входных данных записаны числа N и M — число
кубиков у Ани и Бори. В следующих N строках заданы номера
цветов кубиков Ани. В последних M строках номера цветов Бори.
Найдите три множества: номера цветов кубиков, которые есть в
обоих наборах; номера цветов кубиков, которые есть только у
Ани и номера цветов кубиков, которые есть только у Бори. Для
каждого из множеств выведите сначала количество элементов в нем,
а затем сами элементы, отсортированные по возрастанию.
'''

N,M=[int(i) for i in input().split()]

listo=set()

listt=set()

for i in range(N):

listo.add(int(input()))

for i in range(M):

listt.add(int(input()))

listo_listt=list(listo&listt)

listo_listt.sort()

only_listo=list(listo-listt)

only_listo.sort()

only_listt=list(listt-listo)

only_listt.sort()

print(len(listo&listt))

print(' '.join([str(i) for i in (listo_listt)]))

print(len(listo-listt))

print(' '.join([str(i) for i in (only_listo)]))

print(len(listt-listo))

print(' '.join([str(i) for i in (only_listt)]))

#--------------------------------------------------------------


#task_6--------------------------------------------------------
'''
Дан текст: в первой строке записано число строк, далее идут
сами строки. Определите, сколько различных слов содержится в
этом тексте.
Словом считается последовательность непробельных символов
идущих подряд, слова разделены одним или большим числом
пробелов или символами конца строки.
'''

num=int(input())

lists=[]

for i in range(num):

lists=lists+input().split(' ')

print(len(set(lists)))

#--------------------------------------------------------------


#task_8--------------------------------------------------------
'''
Август и Беатриса продолжают играть в игру, но Август начал
жульничать. На каждый из вопросов Беатрисы он выбирает такой
вариант ответа YES или NO, чтобы множество возможных задуманных
чисел оставалось как можно больше. Например, если Август задумал
число от 1 до 5, а Беатриса спросила про числа 1 и 2, то Август
ответит NO, а если Беатриса спросит про 1, 2, 3, то Август
ответит YES.
Если же Бетриса в своем вопросе перечисляет ровно половину из
задуманных чисел, то Август из вредности всегда отвечает NO.
Наконец, Август при ответе учитывает все предыдущие вопросы
Беатрисы и свои ответы на них, то есть множество возможных
задуманных чисел уменьшается.
Первая строка содержит наибольшее число, которое мог загадать
Август. Каждая следующая строка содержит очередной вопрос
Беатрисы: набор чисел, разделенных пробелами. Последняя строка
входных данных содержит одно слово HELP.
Для каждого вопроса Беатрисы выведите ответ Августа на этот
вопрос. После этого выведите через пробел, в порядке
возрастания, все числа, которые мог загадать Август после
ответа на все вопросы Беатрисы.
'''

count=int(input())
numbers=set()
numbers_=set()

for i in range(count):
numbers.add(str(i+1))

while True:
string=input()
if string=='HELP':
break
else:
numbers_=set(string.split())
if len(numbers-numbers_)>=len(numbers&numbers_):
print('NO')
numbers=numbers-numbers_
else:
print('YES')
numbers=numbers&numbers_

for elements in sorted(numbers, key=int):
print(elements, end=' ')

#--------------------------------------------------------------