Histogram Problem

#include<bits/stdc++.h>
using namespace std;
int maxarea(int arr[], int n)
{
stacks1;
int tp;
int maxarea1=0;
int area;

int i=0;
while(i<n)
{
    if(s1.empty()||arr[i]>arr[s1.top()])
    {
        s1.push(i++);
    }
    else
    {
        tp= s1.top();
        s1.pop();
        area= arr[tp]*(s1.empty() ? i :i-s1.top()-1);

        if(maxarea1<area)
        {
            maxarea1=area;
        }
    }

}
while(s1.empty()==false)
{
    tp= s1.top();
        s1.pop();
        area= arr[tp]*(s1.empty() ? i : i-s1.top()-1);

        if(maxarea1<area)
        {
            maxarea1=area;
        }
}
return maxarea1;

}
int main()
{
int n;
cin>>n;
int a1[n];
for(int i=0;i<n;i++)
{
cin>>a1[i];
}
cout<<maxarea(a1,n);
return 0;

}

whats the error here? its running the sample case but all other test cases are failing. Help ASAP