TVA++

Time limit: 0.1s Memory limit: 16MB Input: tva++.in Output: tva++.out


În Regatul Finanțelor fiecare companie este evaluată printr-o listă de profituri anuale.
Ministerul Valorilor Adăugate (MVA) dorește să afle cât de „sănătoasă” este o firmă măsurând cea mai mare sumă ce poate fi obținută dintr-o creștere constantă a profitului, aceasta numindu-se valoarea firmei.

Din când în când, inspectorii efectuează o transformare fiscală: rapoartele companiei sunt răsturnate, prima lună schimbând locul cu ultima, a doua cu penultima și așa mai departe.

După fiecare astfel de transformare, se recalculează valoarea firmei.
Ministerul dorește să știe care este valoarea totală (ANSANS) după aplicarea acestor verificări succesive de un număr dat de ori.

Cerință

Se dă o secvență de NN numere naturale A[1],A[2],,A[N]A[1], A[2], \ldots, A[N] și un număr natural nenul PP.
O subsecvență este (A[j1],A[j2],,A[jk])\left(A[j_{1}], A[j_{2}], \ldots, A[j_{k}]\right), cu 1j1<j2<<jkN1\leq j_{1}<j_{2}<\ldots <j_{k}\leq N. Spunem că o subsecvență este strict crescătoare dacă A[j1]<A[j2]<<A[jk]A[j_{1}]<A[j_{2}]< \ldots < A[j_{k}].

Definim operația TRANSFORMARE(A)\textit{TRANSFORMARE}(A), care interschimbă A[i]A[i] cu A[Ni+1]A[N-i+1], pentru fiecare 1iN/21\leq i\leq N / 2.
Notăm valoarea unei secvențe cu VALUE(A)\textit{VALUE}(A), reprezentând valoarea maximă a sumei elementelor unei subsecvențe strict crescătoare din secvența AA.

Construim șirul de șiruri BB astfel:

  • B[1]=AB[1]=A;
  • B[i]=TRANSFORMARE(B[i1])B[i] =\textit{TRANSFORMARE}(B[i - 1]), pentru i>1i>1.

Definim ANS(A,P)\textit{ANS}(A,P) astfel:

ANS(A,P)=i=1P(1)i1VALUE(B[i]).\textit{ANS}(A, P)=\sum_{i=1}^{P}(-1)^{i - 1}\textit{VALUE}(B[i]).

Cerința este să determinați ANS(A,P)ANS(A,P).

Date de intrare

Fișierul de intrare tva++.in conține:

  • pe prima linie două numere naturale nenule, NN și PP, cu semnificația din enunț;
  • pe următoarea linie NN numere naturale, reprezentând elementele secvenței AA.

Date de ieșire

Se va afișa în fișierul de ieșire tva++.out valoarea lui ANS(A,P)ANS(A,P).

Restricții și precizări

  • 1N200 0001\leq N\leq 200 \ 000;
  • 1P1 000 0001\leq P\leq 1 \ 000 \ 000;
  • 1A[i]100 0001\leq A[i]\leq 100 \ 000, 1iN1\leq i\leq N.
# Punctaj Restricții
1 10 1N20,P=11\leq N \leq 20, P = 1
2 10 1N20,1P1 000 0001\leq N \leq 20, 1 \leq P \leq 1 \ 000 \ 000
3 15 1N2 000,P=11\leq N \leq 2 \ 000, P = 1
4 15 1N2 000,1P1 000 0001\leq N \leq 2 \ 000, 1 \leq P \leq 1 \ 000 \ 000
5 20 1N200 000,P=11\leq N \leq 200 \ 000, P = 1
6 30 1N200 000,1P1 000 0001\leq N \leq 200 \ 000, 1 \leq P \leq 1 \ 000 \ 000

Exemplul 1

tva++.in

5 2 
1 2 3 4 5

tva++.out

10

Explicație

ANS(A,P)=VALUE(B[1])VALUE(B[2])=155=10ANS(A, P) = VALUE(B[1]) - VALUE(B[2]) = 15 - 5 = 10

Exemplul 2

tva++.in

5 1 
1 2 3 4 5 

tva++.out

15 

Explicație

ANS(A,P)=(+1)VALUE(B[1])=15ANS(A,P)=(+1)\cdot VALUE(B[1])=15.

Exemplul 3

tva++.in

5 2
1 101 2 3 100

tva++.out

-95 

Explicație

ANS(A,P)=(+1)VALUE(B[1])+(1)VALUE(B[2])=106201=95ANS(A,P)=(+1)\cdot VALUE(B[1])+(-1)\cdot VALUE(B[2])=106-201=-95.

Exemplul 4

tva++.in

4 7
2 2 2 2

tva++.out

2

Explicație

ANS(A,P)=22+22+22+2=2ANS(A,P)=2-2+2-2+2-2+2=2.

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