Code shows run error

Code shows run error for all testcases

#include
using namespace std;
void merge (long long int a[],long long int s,long long int e){
long long int mid=(s+e)/2;
long long int i=s;

long long int j=mid+1,k=s;
long long int temp[1000000];
while(i<=mid && j<=e){
if(a[i]<a[j]){
temp[k++]=a[i++];
}
else{
temp[k++]=a[j++];
}
}
while(i<=mid){
temp[k++]=a[i++];
}
while(j<=e){
temp[k++]=a[j++];
}
for(long long int t=s;t<=e;t++){
a[t]=temp[t];
}

}

void mergesort(long long int a[],long long int s,long long int e){
if(s>=e){
return;
}
long long int mid=(s+e)/2;
mergesort(a,s,mid);
mergesort(a,mid+1,e);
merge(a,s,e);

return;

}

int main() {
long long int n;
cin>>n;
long long int a[n];
for(int i=0;i<n;i++){
cin>>a[i];
}
mergesort(a,0,n-1);
for(long long int i=0 ;i<n;i++){
cout<<a[i]<<" ";
}
return 0;
}

hello @priyeshant1104
it is probably because of this large size array.

declare it like long long temp[e+1];