【HDU 1022】【队列】 Train Problem

 一开始就目测是队列,第一次做的时候是在寒假的时候,那时候不知道STL库,暴露了我是水货的本质。现在重新做一边。


比较迷茫的是,第一次用printf一直WA,最后百度了别人的代码,为什么他们用cin就能AAAAAAA为什么!!!


#include "iostream"
#include "stack"
using namespace std;
int main(int argc, char const *argv[])
{
    int  n;
    int  p1,p2,p3;
    char a[1005];
    char b[1005];
    int  c[1005];//用来表示火车入栈和出栈的顺序
    while(cin>>n>>a>>b)
    {
        p1=0,p2=0,p3=0;
        stack <char> s;
        while(p2<n)
        {
            if(s.empty()||s.top()!=b[p2])
            {
                s.push(a[p1++]);
                c[p3++]=1;
            }
            else if(s.top()==b[p2])
            {
                c[p3++]=0;
                s.pop();
                p2++;
            }
            else break;
        }
        if(s.empty())
        {
            printf("Yes.\n");
            for (int i = 0; i < p3; ++i)
            {
                printf("%s\n",c[i]?"in":"out");
            }
        }
        else
            printf("No.\n");
        printf("FINISH\n");
    }
    return 0;
}


你可能感兴趣的:(数据结构,C++,水题)