欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

栈 铁轨 火车编组NEFU1628

程序员文章站 2022-04-09 12:47:38
...

栈 铁轨 火车编组NEFU1628

#include <bits/stdc++.h>

using namespace std;
stack<int>vis1;
int main()
{
    int n;
    while(cin>>n)
    {
        int s[110];
        int a=1,b=1;
        for(int i=1; i<=n; i++)
            cin>>s[i];
        while(b<=n)//从1开始输入,每次有三种情况
        {
            if(a==s[b])//这个数正好是要输出的就进栈后直接输出
            {
                a++;
                b++;
                cout<<'A'<<'B';

            }
            else if(!vis1.empty()&&vis1.top()==s[b])//如果栈非空且栈顶元素正好是要输出的,就直接出栈
            {
                vis1.pop();
                b++;
                cout<<'B';
            }
            else if(a<=n)//如果不是输出的先放入栈中缓存
            {
                vis1.push(a++);
                cout<<'A';
            }


        }

    }
    return 0;
}

相关标签: 大一寒假