Permutacje
Limit pamięci: 32 MB
Permutacja1
zbioru
jest inwolucją wtedy i tylko wtedy, gdy
dla każdego
.
Wyrażeniem nawiasowym długości
będziemy nazywać dowolne słowo długości
składające się wyłącznie ze znaków
'(' oraz ')'.
Wyrażenie nawiasowe jest poprawne, jeśli liczba nawiasów otwierających jest równa liczbie nawiasów zamykających, a w każdym prefiksie tego wyrażenia liczba znaków '(' jest nie mniejsza od liczby znaków ')'.
Powiemy, że permutacja
długości
koduje wyrażenie nawiasowe o długości
, jeśli
nawiasy otwierające w wyrażeniu (od lewej do prawej) są na pozycjach
, zaś
zamykające - także od lewej do prawej - na pozycjach
.
W szczególności, w takim przypadku zachodzi
oraz
.
Znamy wartości pewnej permutacji
dla niektórych argumentów.
Należy stwierdzić, na ile sposobów można określić pozostałe wartości
, tak by była ona inwolucją i kodowała poprawne wyrażenie nawiasowe.
Wejście
W pierwszym wierszu standardowego wejścia znajdują się dwie liczby całkowite
oraz
(
)
oddzielone pojedynczym odstępem.
W każdym z kolejnych
wierszy znajduje się jedna para liczb całkowitych oddzielonych pojedynczym odstępem;
-ty
spośród tych wierszy zawiera liczby
i
(
), oddzielone pojedynczym odstępem
i oznaczające, że
.
Wszystkie
, jak również wszystkie
, są parami różne.
Wyjście
W pierwszym i jedynym wierszu standardowego wyjścia należy wypisać jedną liczbę całkowitą:
liczbę permutacji zbioru
, które są inwolucjami, kodują poprawne
wyrażenie nawiasowe oraz spełniają podane na wejściu równości.
Przykład
Dla danych wejściowych:
3 4
1 1
2 2
4 3
6 6
poprawną odpowiedzią jest:
1
Wyjaśnienie do przykładu:
Jedyna permutacja, która spełnia wymogi zadania, to
,
a koduje ona następujące wyrażenie nawiasowe: (()()).
1. Permutacją zbioru

nazywamy dowolną funkcję różnowartościową

.
Autor zadania: Dariusz Leniowski.