STLのstackを使ったことがなかったので使ってみた。

#include <iostream>
#include <stack>
using namespace std;

int main(){
stack<int> s1, s2;
int ball[10], n;

cin>>n;
while(n--){
int i;
for(int i=0; i<10; i++)cin>>ball[i];
s1.push(0); s2.push(0);
//cout<<s1.top()<<"\n";
for(i=0; i<10; i++){
//cout<<s1.top()<<' '<<s2.top()<<"\n";
if(s1.top()<ball[i]){
if(s2.top()<ball[i]){
if(s1.top()>=s2.top())s1.push(ball[i]);
else                 s2.push(ball[i]);
}else{
s1.push(ball[i]);
}
}else if(s2.top()<ball[i]){s2.push(ball[i]);}
else break;
}
//cout<<"i:"<<i<<"\n";

if(i==10)cout<<"YES\n";
else     cout<<"NO\n";
}
return 0;
}