I am trying to solve SPOJ street parade. But i dont know what is wrong in the following code:
#include<iostream>
#include<algorithm>
#include<stack>
#include<cstdio>
using namespace std;
int main(){
int n,ne,last;
cin>>n;
while(n!=0){
int ar[n];
last=0;
stack <int> s;
for(int i=0;i<n;i++)
cin>>ar[i];
for(int i=0;i<n;i++){
if(s.top()==(last+1)){
s.pop();
last++;
}
else if(ar[i]==(last+1))
last++;
else if(!s.empty() && s.top()<ar[i]){
cout<<"no"<<endl;
continue;
}
else
s.push(ar[i]);
}
cout<<"yes"<<endl;
cin>>n;
}
return 0;
}