why this code is giving run error
#include
#include
using namespace std;
int main() {
long long n;
cin>>n;
long long a[n];
for(long long i=0;i<n;i++){
cin>>a[i];
}
stack s;
long long i;
long long area;
long long max_area=0;
for(i=1;i<n;i++){
while(a[i]<a[s.top()] && s.empty()==false){
long long x=a[s.top()];
s.pop();
if(!s.empty()){
area=x*(i-s.top()-1);
}
else{
area=x*i;
}
if(area>max_area){
max_area=area;
}
}
s.push(i);
}
while(!s.empty()){
long long x=a[s.top()];
s.pop();
if(!s.empty()){
area=x*(i-s.top()-1);
}
else{
area=x*i;
}
if(area>max_area){
max_area=area;
}
}
cout<<max_area<<endl;
return 0;
}