deal

Time limit: 0.1s Memory limit: 2MB Input: deal.in Output: deal.out

Vasilică are la grădiniță NN turnuri cu înălțimile h1,h2,,hNh_1, h_2, \dots, h_N. Când așază în linie niște turnuri, cel puțin două, astfel încât înălțimile lor să fie în ordine crescătoare, Vasilică spune că a construit un deal. Înălțimea dealului este egală cu înălțimea celui mai înalt turn folosit. Iată, de exemplu, că așezând în ordine turnurile cu înălțimile 2 4 4 7 92 \ 4 \ 4 \ 7 \ 9 a format un deal cu înălțimea 99.

Vasilică și-ar dori să așeze în linie cele NN turnuri, formând o succesiune de dealuri astfel încât suma înălțimilor dealurilor formate să fie maximă.

Cerință

Scrieți un program care, cunoscând înălțimile celor NN turnuri, va determina suma înălțimilor dealurilor ce se pot forma așezând în linie cele NN turnuri, maximă posibil.

Date de intrare

Fișierul de intrare deal.in conține pe prima linie numărul natural NN. Pe cea de a doua linie se află NN numere naturale separate prin spații, reprezentând înălțimile celor NN turnuri.

Date de ieșire

Fișierul de ieșire deal.out va conține o singură linie pe care va fi scris un număr natural reprezentând cerința problemei.

Restricții și precizări

  • 2N100 0002 \leq N \leq 100 \ 000;
  • 11 \leq Înălțimile turnurilor 100 000 \leq 100 \ 000;
  • Dacă după aranjarea turnurilor hihi+1h_i \leq h_{i+1} atunci turnurile ii și i+1i + 1 fac parte din același deal.

Exemplu

deal.in

7
10 2 2 2 7 5 2

deal.out

22

Explicație

O soluție posibilă cu suma înălțimilor 2222 ar fi: 2 10 2 5 2 2 72 \ 10 \ 2 \ 5 \ 2 \ 2 \ 7. S-au format trei dealuri: 2 102 \ 10 (cu înălțimea 1010) și 2 52 \ 5 (cu înălțimea 55) și 2 2 72 \ 2 \ 7 cu înățimea 77.

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