【栈】HDU1022Train Problem I

来源:互联网 发布:人工智能湖南论坛 编辑:程序博客网 时间:2024/06/04 00:43

题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=1022

#include<bits/stdc++.h>using namespace std;const int N=1050;int a[N],b[N],c[N];string s1,s2;int main(){    int n;    while(cin>>n>>s1>>s2){        stack<int>st;        memset(c,0,sizeof(c));        for(int i=0;i<s1.size();i++){            a[i]=s1[i]-'0';            b[i]=s2[i]-'0';        }        int i=0,j=0;        int k=0;        int flag=0;        while(i<n){            flag=0;            if(!st.empty()&&st.top()==b[i]){                st.pop();                c[k++]=1;                flag=1;                i++;                continue;            }            if(j<n){                st.push(a[j++]);                c[k++]=0;                flag=1;            }            if(flag==0) break;        }        if(i<n) cout<<"No."<<endl;        else{            cout<<"Yes."<<endl;            for(int i=0;i<2*n;i++){                if(c[i]) cout<<"out"<<endl;                else cout<<"in"<<endl;            }        }        cout<<"FINISH"<<endl;    }    return 0;}


原创粉丝点击