Fie a = (a[1], a[2], ..., a[n]) un șir de n numere întregi. Pentru fiecare k ∈ {1,2, ...,n}, definim min[k] = min{a[1], a[2], ... ,a[k]} și max[k] = max{a[1], a[2], ...,a[k]}. Astfel, asociem șirului a un alt șir de intervale închise minmax = ([min[1], max[1]], [min[2], max[2]], ..., [min[n], max[n]]).
Vom spune că șirul a este un șir cromatic dacă și numai dacă elementele șirului minmax sunt distincte două câte două, adică nu există două intervale identice în șir.
De exemplu, dacă a = (7, 4, 9), atunci șirul minmax este ([7, 7], [4, 7], [4, 9]). Cum nu există două intervale identice în minmax, șirul a este cromatic. În schimb, dacă a = (4, 9, 7), atunci șirul minmax este ([4, 4], [4, 9], [4, 9]). Intervalul [4, 9] se repetă, deci șirul a nu este cromatic.
Considerăm toate șirurile cromatice distincte ce se pot forma prin rearanjarea elementelor șirului a și le ordonăm lexicografic. Notăm cu NSC numărul de șiruri astfel obținute. De exemplu, dintre cele 6 permutări ale șirului a = (7,4,9), numai NSC = 4 sunt cromatice:
1) (4, 7, 9);
2) (7, 4, 9);
3) (7, 9, 4);
4) (9, 7, 4).
Cerința
Dându-se un șir a, nu neapărat cromatic, să se determine:
- Numărul de șiruri cromatice
NSCce se pot forma prin rearanjarea elementelor șiruluia. Întrucât acest număr poate fi foarte mare, se cereNSCmodulo1.000.000.007. - Știind că șirul
aeste cromatic, să se determine pozițiap ∈ {1, 2, ..., NSC}a șiruluiaîn lista ordonată lexicografic a tuturor permutărilor cromatice ale luia. - Dat fiind
q ∈ {1, 2, ..., NSC}, să se determine cel de-alq-lea șir cromatic în ordine lexicografică ce se poate obține prin rearanjarea elementelor șiruluia.
Date de intrare
Fișierul de intrare cromatic.in conține pe prima linie un număr natural c ∈ {1, 2, 3}, reprezentând numărul cerinței de rezolvat:
- Dacă
c = 1, pe linia a doua vom avea un număr naturaln, iar pe linia a treia vom aveannumere naturale separate prin spații, reprezentând un șir nu neapărat cromatic. - Dacă
c = 2, pe linia a doua vom avea un număr naturaln, iar pe linia a treia vom aveannumere naturale separate prin spații, reprezentând un șir cromatic. - Dacă
c=3, linia a doua va conține numerelenșipseparate prin spații, iar linia a treia va conținennumere distincte separate prin spații, reprezentând un șir nu neapărat cromatic.
Date de ieșire
Fișierul de ieșire cromatic.out trebuie să conțină o singură linie, pe care se va afișa, în funcție de numărul cerinței de rezolvat:
- Dacă
c = 1, numărul naturalNSCmodulo1.000.000.007; - Dacă
c = 2, numărul naturalp, ce reprezintă poziția șiruluiaîn lista ordonată lexicografic a tuturor șirurilor cromatice obținute prin rearanjarea elementelor șirului citit; - Dacă
c = 3, un șir dennumere naturale, separate prin spații, ce reprezintă cel de-alq-lea șir cromatic în ordine lexicografică care se poate obține prin rearanjarea elementelor șiruluia.
Restricții și precizări
2 ≤ n ≤ 300.000;-1.000.000.000 ≤ a[i] ≤ 1.000.000.000;1 ≤ p, q ≤ 1.000.000.000;p, q ∈ {1, 2, ..., NSC}.- Pentru 9 puncte,
c=1,n ≤ 20 - Pentru 7 puncte,
c=1,21 ≤ n ≤ 300.000 - Pentru 10 puncte,
c=2,1 ≤ p ≤ n - Pentru 10 puncte,
c=2,NSC - p ≤ n - Pentru 10 puncte,
c=2,n ≤ 20 - Pentru 12 puncte,
c=2,21 ≤ n ≤ 300.000 - Pentru 10 puncte,
c=3,1 ≤ q ≤ n - Pentru 10 puncte,
c=3,NSC - q ≤ n - Pentru 10 puncte,
c=3,n ≤ 20 - Pentru 12 puncte,
c=3,21 ≤ n ≤ 300.000
Exemplul 1:
cromatic.in
1 4 1 5 3 8
cromatic.out
8
Explicație
Avem 8 șiruri cromatice distincte:
1: 1 3 5 8
2: 3 1 5 8
3: 3 5 1 8
4: 3 5 8 1
5: 5 3 1 8
6: 5 3 8 1
7: 5 8 3 1
8: 8 5 3 1
Exemplul 2:
cromatic.in
2 4 5 3 1 8
cromatic.out
5
Explicație
În lista ordonată lexicografic, șirul citit se găsește pe poziția 5.
Exemplul 3:
cromatic.in
3 4 7 5 3 1 8
cromatic.out
5 8 3 1
Explicație
A șaptea soluție în ordine lexicografică este 5 8 3 1