In the event of technical difficulties with Szkopuł, please contact us via email at [email protected].
If you would like to talk about tasks, solutions or technical problems, please visit our Discord servers. They are moderated by the community, but members of the support team are also active there.
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.
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.
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.
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: (()()).
Autor zadania: Dariusz Leniowski.