fork download
  1. #include <bits/stdc++.h>
  2.  
  3. using namespace std;
  4.  
  5. int main(){
  6. long long k ;cin >> k;
  7. long long m = 0;
  8. string s[100001];
  9. do{
  10.  
  11. stack <long long> b;
  12. queue <long long> a;
  13. long long tmp;
  14. cin >> tmp ;
  15. if(tmp==1) a.push(tmp);
  16. else{ b.push(tmp);a.push(0);}
  17. for(int i = 2 ; i <= k ; i++){
  18. cin >> tmp ;
  19. if( tmp == a.back() + 1 ){
  20. a.push(tmp);
  21. while( b.size()!=0 && b.top() == a.back()+1){
  22. a.push(b.top());
  23. b.pop();
  24. }}
  25. else b.push(tmp);
  26. }
  27. if(a.front()==0) a.pop();
  28. s[m]="yes";
  29. if(b.size()!=0){
  30. if(b.top() == a.back()+1){
  31. while(b.size()!=1){
  32. tmp = b.top();
  33. b.pop();
  34. if(tmp!=b.top()-1){
  35. s[m]="no";
  36. }
  37. }}
  38. else s[m]="no";
  39. }
  40. m++;
  41. cin >> k;
  42. }while(k!=0);
  43. for(int i = 0 ; i <=m-2 ; i++ ) cout << s[i]<< "\n";
  44. cout << s[m-1];
  45. return 0;
  46. }
Success #stdin #stdout 0.01s 6732KB
stdin
Standard input is empty
stdout
no