Gładkie permutacje

시간 제한3초메모리 제한2048 MB

요약
최장 증가 부분수열, 최장 감소 부분수열, 최장 볼록 부분수열의 길이가 각각 a, b, c인 순열의 최대 길이 n을 구하고, 길이 n인 그러한 순열의 개수를 소수 p로 나눈 나머지를 구한다.
난이도

어려움10점 중 9점

유형
조합론, 동적 계획법, 정수론, 수학
정답자
아직 제출이 없습니다

문제

Ciąg p_1,p_2,…,p_kp\_1, p\_2, \dots , p\_k nazwiemy:

  • rosnącym, jeśli p_1<p_2<⋯<p_kp\_1 < p\_2 < \dots < p\_k;
  • malejącym, jeśli p_1>p_2>⋯>p_kp\_1 > p\_2 > \dots > p\_k;
  • wypukłym, jeśli dla pewnego 1≤l≤k1 ≤ l ≤ k ciąg p_1,p_2,…,p_lp\_1, p\_2, \dots , p\_l jest rosnący, a ciąg p_l,p_l+1,…,p_kp\_l , p\_{l+1}, \dots , p\_k jest malejący.

W szczególności ciąg jednoelementowy uznajemy zarówno za rosnący, malejący i wypukły.

Permutację nazwiemy (a,b,c)(a, b, c)-gładką, jeśli spełnione są jednocześnie trzy warunki:

  • najdłuższy jej podciąg rosnący jest długości aa,
  • najdłuższy jej podciąg malejący jest długości bb,
  • najdłuższy jej podciąg wypukły jest długości cc.

Na przykład permutacja 44, 55, 22, 33, 11 jest (2,3,4)(2, 3, 4)-gładka, gdyż:

  • jej najdłuższy podciąg rosnący to na przykład 44, 55;
  • jej najdłuższy podciąg malejący to na przykład 44, 22, 11;
  • jej najdłuższy podciąg wypukły to na przykład 44, 55, 33, 11.

Masz dane trzy liczby całkowite aa, bb, cc spełniające 1≤a≤b≤c<a+b1 ≤ a ≤ b ≤ c < a + b oraz liczbę pierwszą pp. Można udowodnić, że dla takiej trójki aa, bb, cc zbiór wszystkich (a,b,c)(a, b, c)-gładkich permutacji jest niepusty i skończony. Napisz program, który wyznaczy:

  • długość najdłuższej permutacji (a,b,c)(a, b, c)-gładkiej (oznaczmy ją przez nn),
  • resztę z dzielenia przez pp liczby (a,b,c)(a, b, c)-gładkich permutacji długości nn.

입력

W jedynym wierszu wejścia są cztery liczby całkowite aa, bb, cc, pp (1≤a≤201 ≤ a ≤ 20, a≤b≤50,000a ≤ b ≤ 50\\, 000, b≤c<a+bb ≤ c < a + b, 107≤p≤10910^7 ≤ p ≤ 10^9), oznaczające odpowiednio: maksymalne długości ciągów rosnących, malejących, wypukłych w rozpatrywanych permutacjach, oraz liczbę pierwszą pp.

출력

W jedynym wierszu wyjścia powinny znaleźć się dwie liczby całkowite: długość najdłuższej permutacji (a,b,c)(a, b, c)-gładkiej oraz liczba permutacji (a,b,c)(a, b, c)-gładkich tej długości modulo pp.

힌트

Wyjaśnienie przykładów: Zbiór wszystkich (2,2,3)(2, 2, 3)-gładkich permutacji jest następujący:

  • 11, 33, 22
  • 22, 33, 11
  • 22, 11, 44, 33
  • 22, 44, 11, 33
  • 33, 11, 44, 22
  • 33, 44, 11, 22

Najdłuższe 44 z nich mają długość 44.

W drugim teście przykładowym rozważamy (2,3,3)(2, 3, 3)-gładkie permutacje długości 55:

  • 33, 22, 11, 55, 44
  • 33, 22, 55, 11, 44
  • 44, 22, 11, 55, 33
  • 44, 22, 55, 11, 33
  • 44, 33, 11, 55, 22
  • 44, 33, 55, 11, 22
  • 55, 22, 11, 44, 33
  • 55, 22, 44, 11, 33
  • 55, 33, 11, 44, 22
  • 55, 33, 44, 11, 22

예제3

  1. 예제 1

    입력
    2 2 3 10000019
    
    예상 출력
    4 4
    
  2. 예제 2

    입력
    2 3 3 999999937
    
    예상 출력
    5 10
    
  3. 예제 3

    입력
    8 9 11 15872567
    
    예상 출력
    57 57