MinimizeSum

Time limit: 0.8s Memory limit: 128MB Input: minimizesum.in Output: minimizesum.out

Fie un șir v1,v2,,vNv_1, v_2, \dots, v_N de numere întregi. Operația magică constă în executarea următorilor pași:

  • Se selectează o poziție ii, 1<i<N1 < i < N.
  • viv_i își modifică valoarea în vi1+vi+1viv_{i−1} + v_{i+1} − v_i.

Aveți posibilitatea de a efectua operația magică de oricâte ori doriți.

Cerință

Scopul vostru este să transformați șirul inițial într-un șir cu suma elementelor cât mai mică posibil. Fie SS această sumă, iar KK numărul minim de aplicații a operației magice pentru a ajunge la un șir cu suma SS.

Date de intrare

Prima linie conține numărul PP (11 sau 22) care indică cerința care trebuie rezolvată. Pe a doua linie se află numărul natural NN reprezentând lungimea șirului. Pe a treia linie se vor afla NN numere întregi separate printr-un spațiu, valorile inițiale ale șirului vv.

Date de ieșire

Fișierul de ieșire va conține exact un număr întreg. Dacă P=1P = 1, acest număr trebuie să fie SS (suma minimă care se poate obține), iar dacă P=2P = 2, trebuie să se afișeze KK (numărul minim de operații magice pentru a obține suma SS).

Restricții și precizări

  • 1N500 0001 \leq N \leq 500 \ 000
  • 1012vi1012−10^{12} \leq v_i \leq 10^{12}
  • Se garantează că SS și KK pot fi reprezentate pe tipuri de date întregi pe 6464 de biți cu semn.
# Punctaj Restricții
1 2 P=1P=1, N25N \leq 25, K5K \leq 5
2 3 P=2P=2, N25N \leq 25, K5K \leq 5
3 4 P=1P=1, N500N \leq 500
4 6 P=2P=2, N500N \leq 500
5 6 P=1P=1, N1 000N \leq 1 \ 000
6 9 P=2P=2, N1 000N \leq 1 \ 000
7 4 P=1P=1, K500 000K \leq 500 \ 000
8 6 P=2P=2, K500 000K \leq 500 \ 000
9 24 P=1P=1
10 36 P=2P=2

Exemplul 1

minimizesum.in

1
5
0 6 14 9 9

minimizesum.out

0

Exemplul 2

minimizesum.in

2
5
0 6 14 9 9

minimizesum.out

4

Explicație

În primele 2 exemple operația magică se poate aplica succesiv pe pozițiile 33, 22, 44, 33:
[0,6,14,9,9][0,6,1,9,9][0, 6, 14, 9, 9] \rightarrow [0, 6, 1, 9, 9] [0,5,1,9,9]\rightarrow [0,−5, 1, 9, 9] \rightarrow [0,5,1,1,9][0,5,5,1,9][0,−5, 1, 1, 9] \rightarrow [0,−5,−5, 1, 9]

Obținem astfel în 44 operații magice un șir cu suma 0+(5)+(5)+1+9=00 + (−5) + (−5) + 1 + 9 = 0. Nu se poate obține o sumă mai mică indiferent de numărul de aplicări al operației magice.

Exemplul 3

minimizesum.in

1
15
21 19 14 9 8 5 5 4 3 3 7 13 19 28 37

minimizesum.out

184

Exemplul 4

minimizesum.in

2
15
21 19 14 9 8 5 5 4 3 3 7 13 19 28 37

minimizesum.out

6

Explicație

În exemplele 3 și 4, operația magică se poate aplica succesiv pe pozițiile 77, 88, 55, 22, 33, 44. Șirul final cu suma 184184 va fi:
[21,16,11,8,6,5,4,3,3,3,7,13,19,28,37][21, 16, 11, 8, 6, 5, 4, 3, 3, 3, 7, 13, 19, 28, 37]

Exemplul 5

minimizesum.in

1
25
139 101 61 17 -18 -54 -88 -119 -152 -182 -211 -238 -264 -276 -278 -276 -267 -245 -214 -178 -140 -95 -48 0 50

minimizesum.out

-2990

Exemplul 6

minimizesum.in

2
25
139 101 61 17 -18 -54 -88 -119 -152 -182 -211 -238 -264 -276 -278 -276 -267 -245 -214 -178 -140 -95 -48 0 50

minimizesum.out

5

Explicație

În ultimele 2 exemple operația magică se poate aplica succesiv pe pozițiile 33, 22, 33, 88, 55.

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