i have an 2d vector of m*3 size, of which first col : lower range, second col:upper range,third col:value.and i have and initial 1-D array of size n(m
void build_tree(long long int *tree,long long int index,long long int s,long long int e)
{
if(s==e)
{
tree[index]=0;
return;
}
if(s>e)
return;
long long int mid=(s+e)/2;
build_tree(tree,2*index,s,mid);
build_tree(tree,2*index+1,s,mid);
tree[index]=max(tree[2*index],tree[2*index+1]);
return;
}
void update_range(long long int *tree,long long int index,long long int s,long long int e,long long int lower,long long int upper,int v)
{
if(s>upper || e<lower)
{
return;
}
if(s==e && s>=lower && e<=upper)
{
tree[index]=tree[index]+v;
return;
}
if(s>=e)
return;
long long int mid=(s+e)/2;
update_range(tree,2*index,s,mid,lower,upper,v);
update_range(tree,2*index+1,mid+1,e,lower,upper,v);
tree[index]=max(tree[2*index],tree[2*index+1]);
return;
}
long arrayManipulation(int n, vector<vector<int>> queries) {
/*int a[10000000];
// vector<int>a;
for(int i=0;i<n;i++)
a[i]=0;*/
long long int *tree=new long long int(4*n+1);
build_tree(tree,1,0,n-1);
for(int i=0;i<queries.size();i++)
{
update_range(tree,1,0,n-1,queries[i][0]-1,queries[i][1]-1,queries[i][2]);
}
return tree[1];
}
for input n=10000000 and m=100000 i am getting segmentation fault, i have tried long long int instead of int ,but its still giving me segmentation fault.
expected output is long.