Advertisement
Guest User

Untitled

a guest
Nov 9th, 2019
64
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.94 KB | None | 0 0
  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. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement