copaci

Time limit: 0.1s Memory limit: 16MB Input: copaci.in Output: copaci.out

Se consideră nn copaci de diferite înălţimi, aflaţi în linie dreaptă la distanţe egale, numerotaţi de la 11 la nn. Pentru fiecare copac se cunoaşte înălţimea sa HiH_i. Cum şi copacii simt nevoia să socializeze, fiecare dintre ei are prieteni printre ceilalţi copaci.

Prietenii oricărui copac ii se pot afla atât la stânga, cât şi la dreapta sa. Relaţiile de prietenie sunt definite în felul următor: pentru fiecare copac ii considerăm un şir d1,d2,,dxd_1, d_2, \ldots, d_x reprezentând prietenii copacului ii situaţi în dreapta sa şi un şir s1,s2,,sys_1, s_2, \ldots, s_y reprezentând prietenii copacului ii situaţi în stânga acestuia. Copacii din cele două şiruri corespunzătoare unui copac ii formează împreună lista prietenilor acestuia.

Şirurile corespunzătoare copacului ii se definesc astfel:

  • di=i+1d_i = i + 1(dacă i=ni=n, atunci copacul ii nu are niciun prieten la dreapta sa, şirul dd rămânând vid)
  • Pentru fiecare k2k \geq 2, dkd_k este cel mai mic indice (1dkn1 \leq d_k \leq n) cu proprietatea că dk>dk1d_k > d_{k−1} şi Hdk>Hdk1H_{d_k} > H_{d_{k −1}}. Dacă dkd_k nu există, atunci lista de prieteni la dreapta ai copacului ii s-a încheiat şi construirea şirului se opreşte la acest pas.
  • s1=i1s_1 = i-1 (daca i=1i=1, atunci copacul ii nu are niciun prieten la stânga sa, sirul ss rămânând vid);
  • Pentru fiecare k2k \geq 2, sks_k este cel mai mare indice (1skn1 \leq s_k \leq n) cu proprietatea că sk<sk1s_k < s_{k−1} şi Hsk>Hsk1H_{s_k} > H_{s_{k−1}}. Dacă sks_k nu există, atunci lista de prieteni la stânga ai copacului ii s-a încheiat şi construirea şirului se opreşte la acest pas.

De exemplu, în figura de mai jos sunt reprezentaţi 77 copaci, fiecare având precizată sub el valoarea înălţimii sale. Primul copac din stânga are indicele 11, iar ultimul are indicele 77.

Copacul 11 este prieten cu copacul 22 fiind vecini, cu copacul 55 (deoarece copacul 55 este primul din dreapta lui 22 cu înălţimea mai mare strict decât înălţimea lui 22). La dreapta copacului 55 nu exista niciun copac cu
înălţimea mai mare strict decât a sa, deci singurii prieteni ai
copacului 11 sunt 22 şi 55.

Pentru copacul 33, prietenii la stânga sa sunt copacii 22 şi 11, iar cei de la dreapta sa sunt copacii 44 şi 55. Pentru copacul 66, singurul prieten la stânga este copacul 55, iar la dreapta copacul 77.

Copacul 77 poate avea prieteni doar la stânga, aceştia sunt 66 şi 55 (la stânga copacului 55 nu mai există niciun copac cu înălţimea mai mare strict decât 88).

Grădinarul Marian vrea să aleagă 33 copaci diferiţi dintre cei nn pentru a-i planta în altă grădină. El doreşte ca dintre cei 33 copaci, oricum ar alege AA si BB, 22 dintre ei, atunci AA este prieten cu BB şi BB este prieten cu AA (relaţiile de prietenie se consideră cele stabilite iniţial). Marian are mai multe opţiuni şi se întreabă în câte moduri distincte poate alege cei 33 copaci cu proprietatea cerută.

Cerință

Determinaţi în câte moduri se pot alege 33 copaci diferiţi dintre cei n cu proprietatea că, oricum am alege 22 copaci dintre cei 33, fie aceştia copacul AA şi copacul BB, atunci AA este prieten cu BB şi BB este prieten cu AA.

Date de intrare

Fişierul de intrare copaci.in conţine pe prima linie un număr natural nn, reprezentând numărul de copaci, iar pe a doua linie nn numere naturale nenule, separate prin câte un spaţiu, reprezentând înălţimile copacilor.

Date de ieșire

Fişierul de ieşire copaci.out va conţine pe prima linie un număr natural reprezentând numărul de moduri în care Marian poate alege 33 copaci cu proprietatea din enunţ.

Restricții și precizări

  • 1n200 0001 \leq n \leq 200 \ 000
  • 1Hi2001 \leq H_i \leq 200
  • nu vor exista 22 copaci alăturaţi cu aceeaşi înălţime
  • două triplete de copaci se consideră distincte dacă există cel puţin un copac din primul triplet care nu se află şi în al doilea triplet
  • pentru 30%30\% din teste, 1n2001 \leq n \leq 200

Exemplu

copaci.in

7
6 4 2 3 8 5 8

copaci.out

4

Explicație

Copacul 11 este prieten cu copacii: 2,52, 5
Copacul 22 este prieten cu copacii: 1,3,4,51, 3, 4, 5
Copacul 33 este prieten cu copacii: 1,2,4,51, 2, 4, 5
Copacul 44 este prieten cu copacii: 1,2,3,51, 2, 3, 5
Copacul 55 este prieten cu copacii: 1,2,4,6,71, 2, 4, 6, 7
Copacul 66 este prieten cu copacii: 5,75, 7
Copacul 77 este prieten cu copacii: 5,65, 6
Modurile in care Marian poate alege cei 33 copaci sunt: (1,2,5),(2,4,5),(2,3,4),(5,6,7)(1, 2, 5), (2, 4, 5), (2, 3, 4), (5, 6, 7)

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