fork(3) download
  1. #include<bits/stdc++.h>
  2. #define ll long long
  3. using namespace std;
  4.  
  5. int main()
  6. {
  7. while(1)
  8. {
  9. ll n,i,k=1;
  10. cin>>n;
  11. if(n==0)
  12. {
  13. break;
  14. }
  15. stack <ll> st;
  16. ll *p = (ll*)malloc(n*sizeof(ll));
  17. for(i=0;i<n;i++)
  18. {
  19. cin>>p[i];
  20. }
  21. i=0;
  22. while(i<n)
  23. {
  24. if(p[i]==k)
  25. {
  26. k++;
  27. i++;
  28. }
  29. else if(!st.empty() && st.top()==k)
  30. {
  31. k++;
  32. st.pop();
  33. }
  34. else
  35. {
  36. st.push(p[i]);
  37. i++;
  38. }
  39. }
  40. while(!st.empty() && st.top()==k)
  41. {
  42. k++;
  43. st.pop();
  44. }
  45. if((k==(n+1)) && (st.empty()))
  46. {
  47. cout<<"Yes"<<endl;
  48. }
  49. else
  50. {
  51. cout<<"No"<<endl;
  52. }
  53. }
  54. return 0;
  55. }
Success #stdin #stdout 0s 4580KB
stdin
5
4 1 5 3 2
5
3 1 2 5 4
5
5 3 2 1 4
10
1 2 10 5 4 3 7 6 8 9
10
1 2 10 5 4 3 9 8 7 6
5
3 5 2 4 1
5
1 2 4 3 5
4
4 2 3 1
0
stdout
No
Yes
Yes
Yes
Yes
No
Yes
No