Cerință
Maximilian a învăţat programare dinamică la şcoală şi şi-a fixat scopul nobil de a ajunge în Lotul Naţional de Informatică şi, dacă se poate, chiar în cel restrâns.
Nu demult a învăţat algoritmul ce calculează pentru un şir cu elemente, un subşir strict descrescător de lungime maximă.
Aceasta fiind o problemă uşoară, a modificat enunţul problemei şi acum nu mai ştie să o rezolve. Problema sună în felul următor: ştiind că cele elemente ale şirului pot avea valori din mulţimea , să se determine numărul şirurilor distincte ce admit un număr maxim de subşiruri strict descrescătoare de lungime maximă.
Cunoscând valorile , şi cu semnificaţiile de mai sus, ajutaţi-l pe Maximilian să calculeze numărul de şiruri distincte modulo ce conţin un număr maxim de subşiruri strict descrescătoare de lungime maximă.
Date de intrare
Fişierul de intrare maxmaxmax.in
conţine pe prima linie cele numere naturale , şi separate prin spaţiu.
Date de ieșire
Fişierul de ieşire maxmaxmax.out
va conţine pe prima linie un singur număr natural ce reprezintă numărul şirurilor distincte modulo .
Restricții și precizări
- ;
Exemplul 1
maxmaxmax.in
4 3 5
maxmaxmax.out
20
Explicație
Sunt şiruri cu un număr maxim de soluţii, ce admit subşir descrescător de lungime maximă :
Sunt alte şiruri cu un număr maxim de soluţii, ce admit subşir descrescător de lungime maximă :
În total de soluţii. Toate celelalte şiruri permit un număr mai mic de soluţii de lungime maximă.