20200204看错题QAQ

把题改成了按输入顺序入栈能否倒序出栈      原题懒得打了,太伤心了,直接抄答案了

#include <iostream>
#include <cstring>
#include <queue>
#include <deque>
#include <math.h>
#include <map>
#include <stack>
#include<cstring>
#include<cstdio>
#include<string>
#include<algorithm>
#define RG register int
#define rep(i,a,b)    for(RG i=a;i<=b;++i)
#define per(i,a,b)    for(RG i=a;i>=b;--i)
#define ll long long
#define inf (1<<29)
using namespace std;
const int maxn=1000+5;
queue<int> qu;
stack<int> sta1,sta2;
inline int read(){
    int x=0,f=1;char c=getchar();
    while(c<'0'||c>'9'){if(c=='-')f=-1;c=getchar();}
    while(c>='0'&&c<='9'){x=x*10+c-'0';c=getchar();}
    return x*f;
}

inline void clean(){
    queue<int> emptya;
    swap(emptya,qu);
}

void d0(int n){
    int num=n;
    while(!qu.empty())
    {
         int temp=qu.front();
         sta1.push(temp);
         qu.pop();
         if(temp==num){
            while(sta1.size() && sta1.top()==num)sta1.pop(),cout<<num,num--;
         }
    }
    if(!num)cout<<"Yes
";
    else cout<<"No
";
}

int main()
{
    int n;
    while(cin>>n && n)
    {
        int i=1;
        while(i<=n){
            if(i==1)clean();
            int temp=read();
            qu.push(temp);
            if(!temp){break;}
            if(i==n){d0(n),i=1;}
            else i++;
        }
        cout<<endl;
    }
    return 0;
}
原文地址:https://www.cnblogs.com/tabshh/p/12259396.html