Se consideră copaci de diferite înălţimi, aflaţi în linie dreaptă la distanţe egale, numerotaţi de la la . Pentru fiecare copac se cunoaşte înălţimea sa . Cum şi copacii simt nevoia să socializeze, fiecare dintre ei are prieteni printre ceilalţi copaci.
Prietenii oricărui copac 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 considerăm un şir reprezentând prietenii copacului situaţi în dreapta sa şi un şir reprezentând prietenii copacului situaţi în stânga acestuia. Copacii din cele două şiruri corespunzătoare unui copac formează împreună lista prietenilor acestuia.
Şirurile corespunzătoare copacului se definesc astfel:
- (dacă , atunci copacul nu are niciun prieten la dreapta sa, şirul rămânând vid)
- Pentru fiecare , este cel mai mic indice () cu proprietatea că şi . Dacă nu există, atunci lista de prieteni la dreapta ai copacului s-a încheiat şi construirea şirului se opreşte la acest pas.
- (daca , atunci copacul nu are niciun prieten la stânga sa, sirul rămânând vid);
- Pentru fiecare , este cel mai mare indice () cu proprietatea că şi . Dacă nu există, atunci lista de prieteni la stânga ai copacului s-a încheiat şi construirea şirului se opreşte la acest pas.
De exemplu, în figura de mai jos sunt reprezentaţi copaci, fiecare având precizată sub el valoarea înălţimii sale. Primul copac din stânga are indicele , iar ultimul are indicele .
Copacul este prieten cu copacul fiind vecini, cu copacul (deoarece copacul este primul din dreapta lui cu înălţimea mai mare strict decât înălţimea lui ). La dreapta copacului nu exista niciun copac cu
înălţimea mai mare strict decât a sa, deci singurii prieteni ai
copacului sunt şi .
Pentru copacul , prietenii la stânga sa sunt copacii şi , iar cei de la dreapta sa sunt copacii şi . Pentru copacul , singurul prieten la stânga este copacul , iar la dreapta copacul .
Copacul poate avea prieteni doar la stânga, aceştia sunt şi (la stânga copacului nu mai există niciun copac cu înălţimea mai mare strict decât ).
Grădinarul Marian vrea să aleagă copaci diferiţi dintre cei pentru a-i planta în altă grădină. El doreşte ca dintre cei copaci, oricum ar alege si , dintre ei, atunci este prieten cu şi este prieten cu (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 copaci cu proprietatea cerută.
Cerință
Determinaţi în câte moduri se pot alege copaci diferiţi dintre cei n cu proprietatea că, oricum am alege copaci dintre cei , fie aceştia copacul şi copacul , atunci este prieten cu şi este prieten cu .
Date de intrare
Fişierul de intrare copaci.in
conţine pe prima linie un număr natural , reprezentând numărul de copaci, iar pe a doua linie 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 copaci cu proprietatea din enunţ.
Restricții și precizări
- nu vor exista 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 din teste,
Exemplu
copaci.in
7
6 4 2 3 8 5 8
copaci.out
4
Explicație
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Copacul este prieten cu copacii:
Modurile in care Marian poate alege cei copaci sunt: