fbpx

Problema #1728 – KSumDif – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se dă un vector cu n elemente și un număr k.

Se construiește un nou vector, cu n-1 elemente, ale cărui elemente vor fi diferenţa dintre suma și modulul diferenţei a două elemente alăturate din primul vector.

Apoi se construiește un alt vector, după aceeași regulă, ș. a. m. d.

Afișați suma elementelor celui de-al k-1-lea vector construit prin această metodă.

Date de intrare

Programul citește de la tastatură numerele n, k și n numere naturale.

Date de ieșire

Programul va afișa pe ecran suma cerută.

Restricții și precizări

  • 1 ≤ n ≤ 10000
  • cele n elemente ale vectorului vor fi mai mici decât 1000
  • k≤50

Exemplu

Intrare

6 3
5
2
4
9
3
1

Ieșire

32

Explicație

Prelucrarea primului element al noului vector se face astfel: (5+2)-(5-2)=4 ,
Elementele primului vector construit vor fi: 4 4 8 6 2 .
Elementele celui de-al 2-lea vector construit vor fi: 8 8 12 4 , iar suma lor va fi 32 .

#include <bits/stdc++.h>

using namespace std;
int main()
{
    long long n , a[10001] , k , s = 0;
    cin >> n >> k;
    for(int i = 1 ; i <= n ; i++) cin >> a[i];
    while(k > 1)
    {
        for(int i = 1 ; i < n ; i++)
            a[i]=a[i]+a[i+1]-abs(a[i]-a[i+1]);
        n--;
        k--;
    }
    for(int i = 1 ; i <= n ; i++) s+=a[i];
    cout << s;
}
Comentarii

S-ar putea sa iti placa