/*
火车进站出站问题。
需要注意的是初始序列是输入时给的。而不是默认的123....
*/
#include<iostream>
#include<stack>
using namespace std;
#define N 10
char in[N],out[N];
bool inp[N*2]; //用来记录进出顺序,true为in,false为out
int main()
{
stack<char>st;
int n,k;
while(cin>>n>>in>>out)
{
while(!st.empty())st.pop();
k = 0; //k用来记录进站出站顺便的下标
st.push('0'); //方便比较
int i=0,j=-1;
while(i<n && j<n)
{
if (st.top()==out[i])
{
st.pop();
i++;
inp[k++] = false;
}
else
{
if (j==n)break;
st.push(in[++j]);
inp[k++] = true;
}
}
if(j==n && i<n)cout<<"No."<<endl<<"FINISH"<<endl; //当序列in进栈完而序列out没有,不合法
else
{
cout<<"Yes."<<endl;
for(i=0;i<k;i++)
if (inp[i])cout<<"in"<<endl;
else cout<<"out"<<endl;
cout<<"FINISH"<<endl;
}
}
return 0;
}
HDU-1022:Train Problem I
最新推荐文章于 2019-09-10 15:22:54 发布