intervale

Time limit: 0.25s Memory limit: 128MB Input: intervale.in Output: intervale.out

Cerință

Se dă un număr întreg NN şi o permutare a mulţimii (1,2,,N)(1, 2, \dots, N). O subsecvenţă [i,j][i, j], (ij)(i \leq j) conţine toate elementele permutării aflate între poziţiile ii şi jj inclusiv. Se numeşte interval compact o subsecvenţă a cărei elemente formează o mulţime de valori consecutive (nu neapărat în ordinea din permutare). De exemplu, pentru permutarea 1 2 6 4 5 31 \ 2 \ 6 \ 4 \ 5 \ 3, subsecvenţele 6 4 56 \ 4 \ 5 si 2 6 4 5 32 \ 6 \ 4 \ 5 \ 3 sunt intervale compacte, în timp ce subsecvenţele 1 2 61 \ 2 \ 6 si 2 6 4 52 \ 6 \ 4 \ 5 nu sunt intervale compacte. Să se determine numărul de intervale compacte din permutarea dată.

Date de intrare

Fişierul de intrare intervale.in conţine pe prima linie numărul întreg NN. Pe urmatoarele NN linii, se află câte un număr intreg din permutarea dată.

Date de ieșire

Fişierul de ieşire intervale.out conţine un singur număr întreg reprezentând numărul total de intervale compacte din permutarea dată.

Restricții și precizări

  • 1N200 0001 \leq N \leq 200 \ 000
  • Pentru 20%20\% din teste, N2 000N \leq 2 \ 000
  • Pentru 60%60\% din teste, N35 000N \leq 35 \ 000
  • Vor fi numărate şi intervalele ce conţin un singur element.

Exemplu

intervale.in

6
1 2 6 4 5 3

intervale.out

13

Explicație

Cele 1313 intervale compacte din exemplu sunt:

  • 11
  • 1 21 \ 2
  • 1 2 6 4 5 31 \ 2 \ 6 \ 4 \ 5 \ 3
  • 22
  • 2 6 4 5 32 \ 6 \ 4 \ 5 \ 3
  • 66
  • 6 4 56 \ 4 \ 5
  • 6 4 5 36 \ 4 \ 5 \ 3
  • 44
  • 4 54 \ 5
  • 4 5 34 \ 5 \ 3
  • 55
  • 33

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