fork download
  1. #include<bits/stdc++.h>
  2.  
  3.  
  4. using namespace std;
  5.  
  6. stack <int> stc;
  7. queue <int> q;
  8. vector <int> v;
  9.  
  10. int main(){
  11. int i, m, n;
  12. int coach;
  13.  
  14. while(scanf("%d", &coach) && coach){
  15. stc = stack<int>();
  16. q = queue<int>();
  17.  
  18. while(1){
  19. stc = stack<int>();
  20. q = queue<int>();
  21.  
  22. cin>> n;
  23. q.push(n);
  24.  
  25. if(n == 0){
  26. cout<< endl;
  27. break;
  28. }
  29. for(i=1; i<coach; i++){
  30. cin>> n;
  31. q.push(n);
  32. }
  33.  
  34. m = 1;
  35. while(m<=coach){
  36. stc.push(m);
  37.  
  38. while(!stc.empty() && stc.top()==q.front()){
  39. stc.pop();
  40. q.pop();
  41. }
  42. m++;
  43. }
  44. if(stc.size()==0){
  45. cout<<"Yes"<<endl;
  46. }
  47. else{
  48. cout <<"No"<<endl;
  49.  
  50. }
  51. }
  52.  
  53. }
  54.  
  55.  
  56. return 0;
  57. }
  58.  
Success #stdin #stdout 0s 3472KB
stdin
5
1 2 3 4 5
5 4 1 2 3
1 4 3 2 5
3 4 2 5 1
3 4 2 1 5
4 3 5 2 1
0
3
1 2 3
1 3 2
2 1 3
2 3 1
3 1 2
3 2 1
0
4
1 2 3 4
1 2 4 3
1 3 2 4
1 3 4 2
1 4 2 3
1 4 3 2
2 1 3 4
2 1 4 3
2 3 1 4
2 3 4 1
2 4 1 3
2 4 3 1
3 1 2 4
3 1 4 2
3 2 1 4
3 2 4 1
3 4 1 2
3 4 2 1
4 1 2 3
4 1 3 2
4 2 1 3
4 2 3 1
4 3 1 2
4 3 2 1
0
10
5 7 10 9 8 6 4 3 2 1
5 6 4 8 7 3 2 9 1 10
0
0
stdout
Yes
No
Yes
Yes
Yes
Yes

Yes
Yes
Yes
Yes
No
Yes

Yes
Yes
Yes
Yes
No
Yes
Yes
Yes
Yes
Yes
No
Yes
No
No
Yes
Yes
No
Yes
No
No
No
No
No
Yes

Yes
Yes