#include<stdio.h>
int stack[10000],choice,n,top,x,i;//global variables declared
void push(int x); //push declaration
void pop(void); //pop declaration
void push(int x)
{
if(top>=9999)
{
printf("\n\tSTACK is over flow");
}
else
{
top++;
stack[top]=x;
}
}
void pop()
{
if(top<=-1)
{
printf("\n\t Stack is under flow");
}
else
{
printf("\t %d",stack[top]);
top--;
}
}
int main()
{
int t,n,a[100000],i,j,k,max,b[100000];
scanf("%d",&t);//number of test cases
for(k=0;k<=t-1;k++)
{
scanf("%d",&n);
for(i=0;i<=n-1;i++)//array scan
{
scanf("%d",&a[i]);
}
max=a[n-1];
push(a[n-1]);
for(i=n-2;i>=0;i--) //scanning entire array from right side to find leader
{
if(max<a[i])
{
max=a[i];
push(max); //pushing element onto stack
}
}
for(i=top-1;i>=0;i--) //popping all the elements (leaders)
{
pop();
}
printf("\n");
}
}
int stack[10000],choice,n,top,x,i;//global variables declared
void push(int x); //push declaration
void pop(void); //pop declaration
void push(int x)
{
if(top>=9999)
{
printf("\n\tSTACK is over flow");
}
else
{
top++;
stack[top]=x;
}
}
void pop()
{
if(top<=-1)
{
printf("\n\t Stack is under flow");
}
else
{
printf("\t %d",stack[top]);
top--;
}
}
int main()
{
int t,n,a[100000],i,j,k,max,b[100000];
scanf("%d",&t);//number of test cases
for(k=0;k<=t-1;k++)
{
scanf("%d",&n);
for(i=0;i<=n-1;i++)//array scan
{
scanf("%d",&a[i]);
}
max=a[n-1];
push(a[n-1]);
for(i=n-2;i>=0;i--) //scanning entire array from right side to find leader
{
if(max<a[i])
{
max=a[i];
push(max); //pushing element onto stack
}
}
for(i=top-1;i>=0;i--) //popping all the elements (leaders)
{
pop();
}
printf("\n");
}
}
No comments:
Post a Comment