Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <stdio.h>
- #include <stack>
- using namespace std;
- int main()
- {
- stack <int> entrada; // pilha entrada
- stack <int> estacao; // aux estaçao
- int n,aux;
- while(scanf("%d",&n) && n){
- int v[n+1];
- while(scanf("%d",&v[0])){
- if(v[0]==0){
- printf("\n");
- break;
- }
- aux=n;
- for(int i=1;i<n;i++){
- scanf("%d",&v[i]); // entrada da ordem final
- entrada.push(aux); // entrada padrão dos vagoes
- aux--;
- }
- entrada.push(aux);
- int j=0;
- while(true){
- if(!entrada.empty() && v[j]>=entrada.top()){
- while(v[j]!=entrada.top()){
- estacao.push(entrada.top());
- entrada.pop();
- }
- entrada.pop();
- j++;
- }
- else if(!estacao.empty() && v[j]==estacao.top()){
- estacao.pop();
- j++;
- }
- else{
- printf("No\n");
- break;
- }
- if(entrada.empty() && estacao.empty()){
- printf("Yes\n");
- break;
- }
- }
- while(!entrada.empty())
- entrada.pop();
- while(!estacao.empty())
- estacao.pop();
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment