Alienii

Time limit: 0.2s Memory limit: 64MB Input: alienii.in Output: alienii.out

Nulla exempla. Nulla problemata.

Sistemele Unite Extraterestre (S.U.E) au dezvoltat o nouă tehnologie ce poate transforma un întreg oraș din trei dimensiuni în două. Încântați de noua descoperire, aceștia și-au ales prima țintă: orașul Constanța! Astfel, frumosul oraș portuar a devenit un șir de NN blocuri cu înălțimile h1,h2,,hNh_1, h_2, \dotsc , h_N (unități extraterestre). În urma experimentului, extratereștrii vor dori să extragă probe din vârful blocurilor folosind o sondă. Renumiții cercetători constănțeni doresc să oprească planul S.U.E. Astfel, ei plănuiesc să construiască scuturi galactice deasupra unor blocuri, pentru ca utilizarea tehnologiei dezvoltate de S.U.E. să fie imposibilă. Construcția unui scut galactic începe de pe acoperișul unui bloc ii și poate proteja un interval continuu de blocuri [l,r][l, r], unde 1lirN1 \leq l \leq i \leq r \leq N. Totuși, acest interval de blocuri trebuie să respecte o condiție esențială: hlhl+1hihr1hrh_l \le h_{l+1} \le \dotsb \le h_i \ge \dotsb \ge h_{r-1} \ge h_r. De asemenea, scuturile dezvoltate de constănțeni au și un nivel TT de tehnologie.

  • Dacă T=1T=1, atunci l=i=rl=i=r, pentru orice scut început de pe acoperișul blocului ii, unde [l,r][l, r] este intervalul de blocuri apărate de scut.
  • Dacă T=2T=2, atunci li=rl \le i=r, pentru orice scut început de pe acoperișul blocului ii, unde [l,r][l, r] este intervalul de blocuri apărate de scut.
  • Dacă T=3T=3, atunci lirl \le i \le r, pentru orice scut început de pe acoperișul blocului ii, unde [l,r][l, r] este intervalul de blocuri apărate de scut.

Pentru a dezvolta o strategie de apărare, cercetătorii constănțeni trebuie să afle, pentru fiecare bloc cu indice ii, suma SiS_i a dimensiunilor tuturor scuturilor ce pornesc din blocul ii și respectă condițiile de mai sus.

Cerință

Ajutați cercetătorii să oprească agresiunile S.U.E asupra Constanței, calculând cele NN sume.

Date de intrare

Pe prima linie a fișierului de intrare alienii.in se află două numere naturale: TT, nivelul de tehnologie al scuturilor galactice folosite, și NN, numărul de blocuri.
Pe cea de-a doua linie se află NN numere naturale, separate printr-un spațiu, reprezentând înălțimea blocurilor din Constanța.

Date de ieșire

Pe prima linie a fișierului de ieșire alienii.out se vor găsi NN numere naturale: S1,S2,SNS_1, S_2, \cdots S_N.

Restricții și precizări

  • 1N500 0001 \leq N \leq 500 \ 000;
  • 1hi1091 \leq h_i \leq 10^9;
  • Dimensiunea unui scut ce apără intervalul de blocuri [l,r][l, r] este egală cu numărul de blocuri din acesta;
# Punctaj Restricţii
1 7 T=1T=1
2 13 T=2, 1N1 000T=2, \ 1 \leq N \leq 1 \ 000
3 29 T=2, 1 001N500 000T=2, \ 1 \ 001 \leq N \leq 500 \ 000
4 14 T=3, 1N1 000T=3, \ 1 \leq N \leq 1 \ 000
5 37 T=3, 1 001N500 000T=3, \ 1 \ 001 \leq N \leq 500 \ 000

Exemplul 1

alienii.in

1 5
4 7 2 3 9

alienii.out

1 1 1 1 1

Exemplul 2

alienii.in

2 5
4 7 2 3 9

alienii.out

1 3 1 3 6

Explicație

Câteva intervale de blocuri valide pentru acest exemplu sunt [1,2][1, 2], [3,5][3, 5], [4,4][4, 4], cu dimensiunile 22, 33, respectiv 11.

Exemplul 3

alienii.in

3 5
4 7 2 3 9

alienii.out

1 8 1 3 6

Explicație

Se poate observa că, în cadrul calculării sumei dimensiunilor scuturilor construite la blocul 22, intervalul de blocuri [1,3][1, 3] se va lua în considerare în acest caz, față de exemplul al doilea.

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