Zbiory 1
시간 제한20초메모리 제한2048 MB
집합 A_1부터 A_n은 각 인덱스의 배수들을 원소로 가지고, 이후 집합은 합집합, 교집합, 여집합 연산으로 만들어지며, 질의는 v가 집합 x에 속하는지 묻는다.
문제
W tym zadaniu będziemy rozpatrywać ciąg podzbiorów zbioru . Zbiory są zdefiniowane następująco: wartość należy do zbioru wtedy i tylko wtedy, gdy jest podzielne przez .
Przykładowo dla kolejne zbiory są następujące:
Kolejnych zbiorów – – powstaje przez operacje sum, przecięć lub negacji na poprzednich zbiorach.
- Operacja sumy zbiorów oraz (oznaczana przez ) tworzy zbiór zawierający wszystkie liczby należące do któregokolwiek z lub .
- Operacja przecięcia zbiorów oraz (oznaczana przez ) tworzy zbiór zawierający wszystkie liczby należące do obu oraz .
- Operacja negacji zbioru (oznaczana przez ) tworzy zbiór zawierający wszystkie liczby całkowite , które nie należą do .
Przykładowy ciąg operacji może wyglądać następująco:
Mając dane , oraz listę operacji tworzących zbiory, odpowiedz na zapytań postaci: czy dana liczba należy do danego zbioru .
입력
W pierwszym wierszu wejścia znajdują się trzy liczby całkowite , , (, , ), oznaczające odpowiednio liczbę początkowych zbiorów, liczbę operacji oraz liczbę zapytań.
Kolejne wierszy zawierają opisy operacji. Wiersz numer opisujący w jaki sposób powstał zbiór , jest w jednej z trzech postaci:
1– oznaczającej operację sumy ,2– oznaczającej operację przecięcia ,3– oznaczającej operację negacji .
W każdej z tych postaci wartości , spełniają warunek , tzn. każda operacja odwołuje się tylko do poprzednich zbiorów.
Kolejne wierszy zawiera zapytania. Każdy z nich zawiera dwie liczby całkowite oraz (, ), które oznaczają pytanie o to, czy .
출력
Na wyjście należy wypisać wierszy zawierających odpowiedzi na kolejne zapytania. Każdy z wierszy ma zawierać jedno ze słów TAK lub NIE. Słowo TAK oznacza, że dla odpowiednich , , zaś słowo NIE oznacza, że .
힌트
Wyjaśnienie przykładu: Test przykładowy odpowiada przykładowym operacjom opisanym w treści zadania.