hdu 1022 Train Problem I

来源:互联网 发布:windows 2000系统下载 编辑:程序博客网 时间:2024/04/30 10:41

http://acm.hdu.edu.cn/showproblem.php?pid=1022


模拟栈。搞了好久,好像是输出问题。。。
AC代码:
#include<iostream>#include<cstdio>#include<stack>#include<cstring>using namespace std;int nu[10000];int main(){    int n,i,k,p;    char in[1000],out[1000];    while(scanf("%d",&n)!=EOF)    {        memset(nu,0,sizeof(nu));        stack<int > s;        cin>>in>>out;        k = i =p = 0;        while(i < n )        {            s.push(in[i++]);    //入站            nu[k++] = 1;        //记录入站            while(!s.empty())   //下一个入站前是否要先出站            {                if(s.top()== out[p])  //要马上出站                {                    p++;                    nu[k++] = 0;   //记录出站                    s.pop();     //出站                }                else break;             }        }        if(s.empty())        {            printf("Yes.\n");            for(i = 0; i < k; i++)            {                if(nu[i] == 1)                {                    printf("in\n");                }                else                {                    printf("out\n");                }            }        }        else        {            printf("No.\n");        }        printf("FINISH\n");    }    return 0;}


原创粉丝点击