Задача «Кубики»

Условие

Аня и Боря любят играть в разноцветные кубики, причем у каждого из них свой набор и в каждом наборе все кубики различны по цвету. Однажды дети заинтересовались, сколько существуют цветов таких, что кубики каждого цвета присутствуют в обоих наборах. Для этого они занумеровали все цвета случайными числами от 0 до 108. На этом их энтузиазм иссяк, поэтому вам предлагается помочь им в оставшейся части.

В первой строке входных данных записаны числа N и M — число кубиков у Ани и Бори. В следующих N строках заданы номера цветов кубиков Ани. В последних M строках номера цветов Бори.

Найдите три множества: номера цветов кубиков, которые есть в обоих наборах; номера цветов кубиков, которые есть только у Ани и номера цветов кубиков, которые есть только у Бори. Для каждого из множеств выведите сначала количество элементов в нем, а затем сами элементы, отсортированные по возрастанию.

 

Решение

  1. def print_set(some_set):
  2.     print(len(some_set))
  3.     print(*[str(item) for item in sorted(some_set)])
  4. N, M = [int(s) for s in input().split()]
  5. A_colors, B_colors = set(), set()
  6. for i in range(N):
  7.     A_colors.add(int(input()))
  8. for i in range(M):
  9.     B_colors.add(int(input()))
  10. print_set(A_colors & B_colors)
  11. print_set(A_colors - B_colors)
  12. print_set(B_colors - A_colors)