9698282 | CodeChef

#include<stdio.h>
int t=0,n=0,arr[10000],i=0,top=0,flag=0;

void push (void)
{
top++;
}
void pop(void)
{
if(top==0)
{
flag=1;
}
else{

top--;
}

}
int main()
{

scanf("%d",&t);
while(t--)
{
    top=0;
    scanf("%d",&n);
    for(i=0;i<n;i++)
    {
        scanf("%d",&arr[i]);
    }
    for(i=0;i<n;i++)
    {
        switch(arr[i])
        {
            case 1: push();
                    break;
            case 0: pop();
                    break;

        }
    }

    if(flag==1)
    {
        printf("Invalid\n");
    }
    else if(top>=0)
    {
            
        printf("Valid\n");
    }
    flag=0;
}

}

i am getting wrong answer but output matches what i tested with other programs.so i am a beginner please help me. i am confused