Олимпиадный тренинг

Задача . Breed Assignment


Задача

Темы:

У фермера Джона имеется N (2 <= N <=15) коров трех различных пород:
Holsteins, Jerseys, Guernseys.

Однако ФД помнит о породах специфически, а именно он помнит список из K
(1 <= K <= 50) отношений между парами коров. Например, он может помнить,
что коровы 1 и 2 одинаковой породы, или, что коровы 1 и 5 разной породы.

Вам дан этот список ФД, помогите ему вычислить количество различных
назначений пород его коровам. Это число может равняться нулю, если
его список содержит противоречивую информацию.

PROBLEM NAME: assign

Формат входных данных

* Строка 1: Два разделенных пробелом целых числа: N и K.

* Строки 2..1+K: Каждая строка описывает отношение между парой коров
x и y (1 <= x,y <= N, x != y) в одной из форм
"S x y", означающей, что коровы x и y одной и той же породы, или
"D x y", означающей, что коровы x и y различных пород.

Формат выходных данных

* Строка 1: Количество возможных назначений пород.

Примечание

Следующие 6 назначений возможны для первых трех коров:
HHG, HHJ, GGH, GGJ, JJH, JJG.
В каждом из этих вариантов мы имеем 3 возможных назначения
для 4-ой коровы, поэтому и получается всего 18 вариантов.


Примеры
Входные данныеВыходные данные
1 4 2
S 1 2
D 1 3
18

time 500 ms
memory 256 Mb
Правила оформления программ и список ошибок при автоматической проверке задач

Статистика успешных решений по компиляторам
Комментарий учителя