Zid

Time limit: 0.1s Memory limit: 64MB Input: zid.in Output: zid.out

Un monument istoric are forma unui zid circular format din NN turnuri. Fiecare turn este construit din cărămizi zidite unele peste altele. Înălțimea unui turn este egală cu numărul de cărămizi din care este format turnul.

Zidul trebuie renovat astfel încât, după renovare, turnurile din zid să aibă aceeași înălțime.

Înălțimea finală a zidului renovat trebuie să fie cât mai mică.
Pentru renovare se va utiliza o mașină care, la o comandă, alege două turnuri vecine și adaugă în cele două turnuri alese același număr de cărămizi.

În situația în care problema nu are soluție, vor trebui eliminate din zid un număr minim de cărămizi, astfel încât, după eliminare, renovarea să fie posibilă.

Cerință

Dacă problema nu are soluție, determinați nrmin, numărul minim de cărămizi care trebuie eliminate astfel încât, după eliminare, renovarea să poată avea loc.
Dacă problema are soluție, determinați hmin, înălțimea finală minimă după renovare.

Date de intrare

Fișierul de intrare zid.in conține pe prima linie numărul NN. Pe a doua linie sunt scrise NN numere naturale h1h2hNh_1 h_2 \cdots h_N separate prin câte un spațiu, reprezentând înălțimile inițiale ale turnurilor, în ordine de la 11 la NN.

Date de ieșire

În fișierul de ieșire zid.out se va scrie pe primul rând unul dintre numerele nrmin sau hmin, după caz.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 0hk1 000 000,1kN0 \leq h_k \leq 1 \ 000 \ 000,\, 1 \leq k \leq N
  • Se garantează că răspunsul este cel mult egal cu 10910^9.
# Punctaj Restricții
1 9 Există două înălțimi egale cu 11 și N2N-2 înălțimi egale cu 00.
2 12 h1h2hNh_1 \leq h_2 \leq \cdots \leq h_N; problema are soluție
3 18 N2 000N \leq 2 \ 000; problema are soluție și hmin1 000hmin \leq 1 \ 000
4 21 2 000<N5 0002 \ 000 < N \leq 5 \ 000; problema are soluție și 1 000<hmin3 0001 \ 000 < hmin \leq 3 \ 000
5 40 Fără restricții suplimentare

Exemplul 1

zid.in

4
1 2 4 3

zid.out

4

Explicație

Pentru exemplul 11, se pot aplica următoarele comenzi:

  • la pozițiile 11 și 22 se zidesc câte 22 cărămizi și se obține zidul 33 44 44 33;
  • la pozițiile 11 și 44 se zidește câte o cărămidă și se obține zidul 44 44 44 44.

Exemplul 2

zid.in

2
1 3

zid.out

2

Explicație

Exemplul 22 nu se poate rezolva decât dacă se vor elimina 22 cărămizi din turnul 22.

Exemplul 3

zid.in

5
5 2 1 3 4

zid.out

5

Explicație

Pentru exemplul 33, se pot aplica următoarele comenzi:

  • la pozițiile 33 și 44 se zidește câte o cărămidă și se obține zidul 55 22 22 44 44;
  • la pozițiile 22 și 33 se zidesc câte trei cărămizi și se obține zidul 55 55 55 44 44;
  • la pozițiile 44 și 55 se zidește câte o cărămidă și se obține zidul 55 55 55 55 55.

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