fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define rep(i,n) for(i=0;i<n;i++)
  4. #define rep1(i,n) for (i=1; i<=n ;i++)
  5. #define gi(n) cin >> n
  6. #define pi(n) cout << n
  7. #define pn printf("\n")
  8. typedef long long ll;
  9. #define MAX 111111
  10. ll order[MAX];
  11.  
  12. int main() {
  13. int i, n, flag, need;
  14. cin >> n;
  15. while(n!=0){
  16. stack <int> lane;
  17. need = 1;
  18. bool state = true;
  19. rep(i,n) gi(order[i]);
  20. rep(i,n) {
  21. while (!lane.empty() && lane.top() == need) {
  22. need++;
  23. lane.pop();
  24. }
  25. if (order[i] == need) {
  26. need++;
  27. }
  28. else if (!lane.empty() && lane.top() < order[i]) {
  29. state = false;
  30. break;
  31. }
  32. else {
  33. lane.push(order[i]);
  34. }
  35. }
  36. if (state) cout << "yes" << "\n";
  37. else cout << "no" << "\n";
  38. gi(n);
  39. }
  40. return 0;
  41. }
Success #stdin #stdout 0s 4348KB
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