altern

Time limit: 0.1s Memory limit: 64MB Input: altern.in Output: altern.out

Cerință

Se dă un o permutare de lungime nn (un șir cu nn elemente care conține toate numerele de la 11 la nn așezate într-o ordine oarecare). Numim segment monoton o secvență (elemente așezate pe poziții consecutive), în care valorile sunt fie în ordine crescătoare, fie în ordine descrescătoare, și care este totodată maximală (adică dacă am mai extinde secvența, aceasta și-ar pierde monotonia). De exemplu șirul 1 2 3 5 4 61\ 2\ 3\ 5\ 4\ 6 are 33 segmente monotone: [1, 2, 3, 5][1,\ 2,\ 3,\ 5], [5, 4][5,\ 4] și [4, 6][4,\ 6].
Avem voie să aplicăm o singură dată asupra șirului o operație de oglindire a unei secvențe date (ne alegem noi ce secvență dorim să oglindim). Determinați câte șiruri distincte cu exact kk segmente monotone se pot obține (aplicând deci o singură dată operația de oglindire asupra șirului original).

Date de intrare

Pe prima linie a fisierului altern.in se află numărul nn, pe a doua linie se află nn valori naturale distincte de la 11 la nn, separate prin spațiu, iar pe a treia linie se află valoarea kk.

Date de ieșire

Fișierul altern.out conține pe prima linie numărul de șiruri cu proprietatea cerută.

Restricții și precizări

  • 2n20002 \leq n \leq 2000
  • 1kn1 \leq k \leq n
  • Secvența oglindită trebuie să fie formată din cel puțin două elemente.
  • Pentru 30 de puncte 2n1002 \leq n \leq 100
  • Pentru alte 70 de puncte 100<n2000100 \lt n \leq 2000

Exemplu

altern.in

6
1 2 3 5 4 6
4

altern.out

4

Explicație

Mai jos considerăm termenii șirului numerotați de la 11.
Aplicând oglindire pe secvența cu capetele în indicii 11 și 22, obtinem sirul 2 1 3 5 4 62\ 1\ 3\ 5\ 4\ 6
Aplicând oglindire pe secvența cu capetele în indicii 11 și 33, obtinem sirul 3 2 1 5 4 63\ 2\ 1\ 5\ 4\ 6
Aplicând oglindire pe secvența cu capetele în indicii 22 și 66, obtinem sirul 1 6 4 5 3 21\ 6\ 4\ 5\ 3\ 2
Aplicând oglindire pe secvența cu capetele în indicii 33 și 66, obtinem sirul 1 2 6 4 5 31\ 2\ 6\ 4\ 5\ 3
Fiecare dintre cele 44 șiruri obținute mai sus are cate 44 segmente monotone.
Pentru o mai bună înțelegere a modului în care se realizează operația de oglindire și se calculează numărul de segmente monotone, în tabelul următor sunt exemplificate toate oglindirile posibile, precum și numărul de secvențe căutate pentru șirul din exemplul dat anterior.

Indicele de start al secvenței oglindite Indicele de final al secvenței oglindite Șirul după oglindire Numărul de segmente monotone din șir
11 22 22 11 33 55 44 66 44
11 33 33 22 11 55 44 66 44
11 44 55 33 22 11 44 66 22
11 55 44 55 33 22 11 66 33
11 66 66 44 55 33 22 11 33
22 33 11 33 22 55 44 66 55
22 44 11 55 33 22 44 66 33
22 55 11 44 55 33 22 66 33
22 66 11 66 44 55 33 22 44
33 44 11 22 55 33 44 66 33
33 55 11 22 44 55 33 66 33
33 66 11 22 66 44 55 33 44
44 55 11 22 33 44 55 66 11
44 66 11 22 33 66 44 55 33
55 66 11 22 33 55 66 44 22

Log in or sign up to be able to send submissions!