Sum of an Array by Divide and Conquer Technique

#include<bits/stdc++.h>
#define mx 10001
#define s start
#define e end
using namespace std;

int a[mx], tree[mx*3];

void sum(int node, int s, int e)
{
    if(s == e)
    {
        tree[node] = a[s];
        return;
    }

    int left = node*2;
    int right = node*2 + 1;
    int mid = (s+e)/2;

    sum(left, s, mid);
    sum(right, mid+1, e);

    tree[node] = tree[left] + tree[right];
}

int main()
{
    int n;

    cout << "Enter Number of Array Element :: ";
    cin >> n;

    cout << "Enter Array Element :: ";
    for(int i=1;i<=n;i++)
        cin >> a[i];

    sum(1, 1, n);

    cout << "Summation is :: " << tree[1] << "\n";

    return 0;
}

Comments