fbpx

Problema #1017 – SumPareVec – Rezolvari PBInfo

de Mihai-Alexandru

Cerința

Se consideră un șir cu n elemente, numere naturale. Folosind metoda Divide et Impera, determinați suma elementelor pare din acest șir.

Date de intrare

Programul citește de la tastatură numărul n, iar apoi cele n elemente ale șirului.

Date de ieșire

Programul va afișa pe ecran numărul S, reprezentând suma cerută.

Restricții și precizări

  • 1 ≤ n ≤ 1000
  • elementele șirului vor fi mai mici decât 1.000.000
  • se recomandă folosirea metodei Divide et Impera

Exemplu

Intrare

64 1 8 4 3 5 

Ieșire

16
#include <bits/stdc++.h>
using namespace std;

int sum_pare(int a[], int st, int dr){
    if(st == dr){
        if(a[st] % 2 == 0)
            return a[st];
        else
            return 0;
    }
    else{
        int mij = (st + dr) / 2;
        return sum_pare(a, st, mij) + sum_pare(a, mij + 1, dr);
    }
}

int main()
{
    int n, a[1001];
    cin >> n;
    for(int i = 1; i <= n; ++i)
        cin >> a[i];

    cout << sum_pare(a, 1, n);

    return 0;
}
Comentarii

S-ar putea sa iti placa