damihenrique

Untitled

Nov 23rd, 2014
122
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.41 KB | None | 0 0
  1. #include <iostream>
  2. #include <stdio.h>
  3. #include <stack>
  4.  
  5. using namespace std;
  6.  
  7. int main()
  8. {
  9.    stack <int> entrada; // pilha entrada
  10.    stack <int> estacao;  //  aux estaçao
  11.  
  12.    int n,aux;
  13.  
  14.  
  15.    while(scanf("%d",&n) && n){
  16.        
  17.      int v[n+1];
  18.      while(scanf("%d",&v[0])){
  19.         if(v[0]==0){
  20.            printf("\n");
  21.            break;
  22.         }
  23.         aux=n;
  24.  
  25.         for(int i=1;i<n;i++){
  26.             scanf("%d",&v[i]);  // entrada da ordem final
  27.             entrada.push(aux); // entrada padrão dos vagoes
  28.             aux--;
  29.         }
  30.         entrada.push(aux);
  31.  
  32.         int j=0;
  33.  
  34.         while(true){
  35.           if(!entrada.empty() && v[j]>=entrada.top()){
  36.  
  37.                 while(v[j]!=entrada.top()){
  38.                     estacao.push(entrada.top());
  39.                     entrada.pop();
  40.                 }
  41.                 entrada.pop();
  42.                 j++;
  43.           }
  44.  
  45.           else if(!estacao.empty() && v[j]==estacao.top()){
  46.                 estacao.pop();
  47.                 j++;
  48.           }
  49.           else{
  50.                 printf("No\n");
  51.                 break;
  52.           }
  53.  
  54.           if(entrada.empty() && estacao.empty()){
  55.                printf("Yes\n");
  56.                break;
  57.           }
  58.  
  59.         }
  60.  
  61.         while(!entrada.empty())
  62.             entrada.pop();
  63.  
  64.         while(!estacao.empty())
  65.            estacao.pop();
  66.     }
  67.   }
  68.  
  69.     return 0;
  70. }
Advertisement
Add Comment
Please, Sign In to add comment