SHARE
TWEET

Untitled

a guest Nov 9th, 2019 51 Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1.  #include <cmath>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <iostream>
  5. #include <algorithm>
  6. #include<stack>
  7. #include<queue>
  8. using namespace std;
  9. /*void  printStack(stack <int> s)
  10. {
  11.     while (!s.empty())
  12.     {
  13.         cout << '\t' << s.top();
  14.         s.pop();
  15.     }
  16.     cout << '\n';
  17. }
  18. void printQueue(queue <int> gq)
  19. {
  20.      queue <int> g = gq;
  21.     while (!g.empty())
  22.     {
  23.         cout << '\t' << g.front();
  24.         g.pop();
  25.     }
  26.     cout << '\n';
  27. }
  28. */
  29.  
  30. int main() {
  31.  int T;
  32.  cin>>T;
  33.  if(T>10||T<1)
  34.  {
  35.      return false;
  36.  }
  37.  
  38.  for(int i=1;i<=T;i++)
  39.  {
  40.      int N;
  41.      cin>>N;
  42.       if(N<0||N>100000)
  43.  {
  44.      return false;
  45.  }
  46.       queue<int> input;
  47.       stack<int> reserved;
  48.      for(int j=1;j<=N;j++)
  49.      {
  50.          int Ai;
  51.          cin>>Ai;
  52.          if(Ai<1||Ai>N)
  53.          {
  54.              return false;
  55.          }
  56.           input.push(Ai);
  57.  
  58.      }
  59.      while(input.front()!=1)
  60.      {
  61.          reserved.push(input.front());
  62.          input.pop();
  63.      }
  64.      int temp=0;
  65.     temp=1;
  66.       input.pop();
  67.       while(!input.empty())
  68.       {
  69.           if(input.front()==temp+1)
  70.           {
  71.                 temp=input.front();
  72.                input.pop();
  73.           }
  74.           else if(reserved.top()==temp+1)
  75.           {
  76.                temp=reserved.top();
  77.               reserved.pop();
  78.           }
  79.           else{
  80.             reserved.push(input.front());
  81.             input.pop();
  82.           }
  83.       }
  84.      bool  flag=true;
  85.       while(!reserved.empty())
  86.       {
  87.           if(reserved.top()==temp+1)
  88.           {
  89.                temp=reserved.top();
  90.               reserved.pop();
  91.           }
  92.           else
  93.           {
  94.               cout<<"no";
  95.               flag=false;
  96.               break;
  97.           }
  98.       }
  99.       if(flag==true)
  100.       {
  101.       cout<<"yes";
  102.       }
  103. /*
  104.      printQueue(input);
  105.      printStack(output);
  106.      printStack(reserved);
  107.      */
  108.  
  109.  }
  110.     return 0;
  111. }
RAW Paste Data
We use cookies for various purposes including analytics. By continuing to use Pastebin, you agree to our use of cookies as described in the Cookies Policy. OK, I Understand
 
Top