7060 : 집합 연산기
•시간제한: 1.000 S
•메모리제한: 256 MB
•제출: 0
•통과: 0
•만든사람: suakii
문제 설명
두 정수 집합 A와 B가 주어졌을 때 여러 종류의 집합 연산을 수행하는 범용 집합 연산기를 구현하십시오.
처리해야 하는 연산 명령어는 다음과 같습니다.
-
-
-
-
-
-
-
[제약 조건]
• 각 집합 크기 $n, m$: $0 \le n, m \le 100$
• 쿼리 수 $Q$: $1 \le Q \le 100$
처리해야 하는 연산 명령어는 다음과 같습니다.
-
UNION: 두 집합의 합집합 (오름차순 출력)-
INTER: 두 집합의 교집합 (오름차순 출력)-
DIFF_AB: 차집합 A - B (오름차순 출력)-
DIFF_BA: 차집합 B - A (오름차순 출력)-
SYM: 대칭차집합 (A-B) ∪ (B-A) (오름차순 출력)-
SUB_AB: A가 B의 부분집합인지 여부 판별 (참이면 YES, 거짓이면 NO)-
SUB_BA: B가 A의 부분집합인지 여부 판별 (참이면 YES, 거짓이면 NO)[제약 조건]
• 각 집합 크기 $n, m$: $0 \le n, m \le 100$
• 쿼리 수 $Q$: $1 \le Q \le 100$
입력 설명
첫째 줄에 집합 A의 정보가 "n a1 a2 ..." 형태로 주어집니다. (n은 원소의 개수, 0 ≤ n ≤ 100, 원소들은 정수)
둘째 줄에 집합 B의 정보가 "m b1 b2 ..." 형태로 주어집니다. (0 ≤ m ≤ 100)
셋째 줄에 수행할 연산 쿼리의 개수 Q가 주어집니다. (1 ≤ Q ≤ 100)
넷째 줄부터 Q개의 줄에 걸쳐 위에서 정의한 연산 명령어 중 하나가 주어집니다.
둘째 줄에 집합 B의 정보가 "m b1 b2 ..." 형태로 주어집니다. (0 ≤ m ≤ 100)
셋째 줄에 수행할 연산 쿼리의 개수 Q가 주어집니다. (1 ≤ Q ≤ 100)
넷째 줄부터 Q개의 줄에 걸쳐 위에서 정의한 연산 명령어 중 하나가 주어집니다.
출력 설명
Q개의 줄에 걸쳐 각 쿼리의 연산 결과를 출력합니다.
UNION, INTER, DIFF, SYM 연산의 경우 원소들을 오름차순으로 정렬하여 공백으로 구분해 출력하고(결과가 공집합이면 빈 줄), SUB 연산의 경우 "YES" 또는 "NO"를 출력합니다.
UNION, INTER, DIFF, SYM 연산의 경우 원소들을 오름차순으로 정렬하여 공백으로 구분해 출력하고(결과가 공집합이면 빈 줄), SUB 연산의 경우 "YES" 또는 "NO"를 출력합니다.
입력 예시
COPY
복사되었습니다!
복사되었습니다!
5 1 2 3 4 5
4 3 4 5 6
5
UNION
INTER
DIFF_AB
SYM
SUB_AB
출력 예시
COPY
복사되었습니다!
복사되었습니다!
1 2 3 4 5 6
3 4 5
1 2
1 2 6
NO
도움
파이썬의 내장 자료형인
각 연산은 연산자 또는 메소드(
set 객체를 생성하십시오.각 연산은 연산자 또는 메소드(
|, &, -, ^, issubset)를 사용하여 효율적으로 계산할 수 있습니다.