http://acm.hdu.edu.cn/showproblem.php?pid=1022
//学了数据结构,一点也不会用,好郁闷的;
//这是栈很基础的内容,参考了别人的,终于写起来有点感觉
// 3 123 123 123 213 这两种情况是可以的
#include<iostream>//2275912 2010-03-31 22:18:55 Accepted 1022 0MS 352K 831 B C++ 悔惜晟
#include<cstdio>
using namespace std;
const int MAX = 10000;
struct stack
{
int a[MAX];
int top;
} s;
bool empty()
{
if(s.top == 0) return true;
else return false;
}
void push(int a)
{
s.a[s.top++] = a;
}
void pop()
{
s.top--;
}
int main()
{
int n, i, num[MAX];
char str1[MAX], str2[MAX];
while(cin>>n>>str1>>str2)
{
int k =1;
int j = 0;
s.top = 0;
for(i =0 ; i < n; i++)
{
push(str1[i] - '0');
num[k++] = 1;
while(s.a[s.top - 1] == str2[j] -'0')
{
pop();
num[k++] = 0;
j++;
}
}
if(empty())
{
printf("Yes./n");
for(i = 1; i <= 2*n; i++)
if(num[i] == 1)
printf("in/n");
else
printf("out/n");
printf("FINISH/n");
}
else
printf("No./nFINISH/n");
}
}