HDU1022(经典) 描述:和PKU 1363 Rails大同小异,只不过输如车的个数,车的开始顺序,结束顺序,输出能否实现,如能输出过程。 #include<iostream> #include<stack> using namespace std; int main() { int n,i,j,k; bool t[1010];//存进出栈情况 char a[1010],b[1010]; while(cin>>n>>a>>b) { stack<char>train; i=j=k=0; while(i<n) { //栈空,栈顶!=b[i],j<n,压栈 if(train.empty()||train.top()!=b[i]&&j<n) { train.push(a[j++]); t[k++]=1; } else if(train.top()==b[i]) { train.pop(); t[k++]=0; i++; } else break;//此时j一定==n } if(train.empty()) { cout<<"Yes."<<endl; for(i=0;i<k;i++) if(t[i]) cout<<"in"<<endl; else cout<<"out"<<endl; } else cout<<"No."<<endl; cout<<"FINISH"<<endl; } return 0; }