http://acm.hust.edu.cn/vjudge/contest/view.action?cid=34121#problem/B
数据结构:重新写这题,是参考别人的思路写的,自己定义还是习惯性在主函数外定义,但是一直WA,后来才发现,由于temp,和Q是全局变量,但是却没有清除上次使用的记录
// File Name: b.cpp
// Author: bo_jwolf
// Created Time: 2013年10月16日 星期三 10:53:29
#include<vector>
#include<list>
#include<map>
#include<set>
#include<deque>
#include<stack>
#include<bitset>
#include<queue>
#include<algorithm>
#include<functional>
#include<numeric>
#include<utility>
#include<sstream>
#include<iostream>
#include<iomanip>
#include<cstdio>
#include<cmath>
#include<cstdlib>
#include<cstring>
#include<ctime>
using namespace std;
int n;
int i, j;
const int maxn = 1005;
char order1[ maxn ], order2[ maxn ];
void solve(){
stack< char > temp;
queue< string >Q;
for( int i = 0, j = 0; i < n && j <= n; ){
if( temp.empty() || temp.top() != order2[ i ] ){
if( j == n ){
cout << "No.\nFINISH" << endl;
return;
}
temp.push( order1[ j++ ] );
Q.push( "in" );
}
else{
Q.push( "out" );
temp.pop();
i++;
}
}
cout << "Yes." << endl;
string ch;
while( !Q.empty() ){
ch = Q.front();
cout << ch << endl;
Q.pop();
}
cout << "FINISH" << endl;
}
int main(){
while(cin >> n){
cin >> order1 >> order2;
solve();
}
return 0;
}