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ât1000
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; }