From 1cb1ad47e1b2838905560854d94add6124d6ee1e Mon Sep 17 00:00:00 2001 From: ZakVetal Date: Fri, 23 Dec 2016 00:18:04 +0200 Subject: [PATCH] Create Homework#9.py --- Homework#9.py | 211 ++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 211 insertions(+) create mode 100644 Homework#9.py diff --git a/Homework#9.py b/Homework#9.py new file mode 100644 index 0000000..6e83c55 --- /dev/null +++ b/Homework#9.py @@ -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=' ') + +#--------------------------------------------------------------