Gładkie permutacje
시간 제한3초메모리 제한2048 MB
최장 증가 부분수열, 최장 감소 부분수열, 최장 볼록 부분수열의 길이가 각각 a, b, c인 순열의 최대 길이 n을 구하고, 길이 n인 그러한 순열의 개수를 소수 p로 나눈 나머지를 구한다.
문제
Ciąg nazwiemy:
- rosnącym, jeśli ;
- malejącym, jeśli ;
- wypukłym, jeśli dla pewnego ciąg jest rosnący, a ciąg jest malejący.
W szczególności ciąg jednoelementowy uznajemy zarówno za rosnący, malejący i wypukły.
Permutację nazwiemy -gładką, jeśli spełnione są jednocześnie trzy warunki:
- najdłuższy jej podciąg rosnący jest długości ,
- najdłuższy jej podciąg malejący jest długości ,
- najdłuższy jej podciąg wypukły jest długości .
Na przykład permutacja , , , , jest -gładka, gdyż:
- jej najdłuższy podciąg rosnący to na przykład , ;
- jej najdłuższy podciąg malejący to na przykład , , ;
- jej najdłuższy podciąg wypukły to na przykład , , , .
Masz dane trzy liczby całkowite , , spełniające oraz liczbę pierwszą . Można udowodnić, że dla takiej trójki , , zbiór wszystkich -gładkich permutacji jest niepusty i skończony. Napisz program, który wyznaczy:
- długość najdłuższej permutacji -gładkiej (oznaczmy ją przez ),
- resztę z dzielenia przez liczby -gładkich permutacji długości .
입력
W jedynym wierszu wejścia są cztery liczby całkowite , , , (, , , ), oznaczające odpowiednio: maksymalne długości ciągów rosnących, malejących, wypukłych w rozpatrywanych permutacjach, oraz liczbę pierwszą .
출력
W jedynym wierszu wyjścia powinny znaleźć się dwie liczby całkowite: długość najdłuższej permutacji -gładkiej oraz liczba permutacji -gładkich tej długości modulo .
힌트
Wyjaśnienie przykładów: Zbiór wszystkich -gładkich permutacji jest następujący:
- , ,
- , ,
- , , ,
- , , ,
- , , ,
- , , ,
Najdłuższe z nich mają długość .
W drugim teście przykładowym rozważamy -gładkie permutacje długości :
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,
- , , , ,