품종 배정
면접 대비시간 제한1초메모리 제한128 MB
소의 품종이 같다거나 다르다는 제약이 주어질 때 가능한 품종 배정의 수를 세고, 모순이면 0을 출력한다.
문제
농부 John에게는 소 마리()가 있으며, 각 소는 홀스타인(Holstein), 저지(Jersey), 건지(Guernsey) 세 품종 중 하나입니다.
안타깝게도 John은 각 소의 정확한 품종을 기억하지 못합니다. 다만 소 쌍 사이의 관계 개()는 기억하고 있습니다. 예를 들어 1번 소와 2번 소가 같은 품종이라거나, 1번 소와 5번 소가 서로 다른 품종이라는 식입니다.
John이 기억하는 소 쌍 사이의 관계 목록이 주어질 때, 소들에게 품종을 배정하는 서로 다른 방법의 수를 구하세요. (관계 목록이 서로 모순된다면 이 값은 이 될 수 있습니다.)
입력
- 첫째 줄: 공백으로 구분된 두 정수 과 .
- 둘째 줄부터 개의 줄: 각 줄은 두 소 와 (, )의 관계를 나타냅니다.
S x y형식은 와 가 같은 품종임을,D x y형식은 와 가 서로 다른 품종임을 뜻합니다.
출력
- 첫째 줄: 가능한 품종 배정의 수.
힌트
예를 들어 소가 마리이고, 1번과 2번 소가 같은 품종이며 1번과 3번 소가 서로 다른 품종이라고 합시다. 앞의 세 소에 대해 가능한 품종 배정은 HHG, HHJ, GGH, GGJ, JJH, JJG의 여섯 가지입니다. 각 경우에 대해 4번 소는 아무 제약이 없어 세 품종 중 무엇이든 될 수 있으므로, John의 목록과 일치하는 배정은 총 가지입니다.