参考博客
http://www.cppblog.com/wuxu/archive/2011/11/22/160719.aspx
先想着用栈的方法做肯定能做 但是 能有这种方法简单吗 多思考一会没准就能找到更好的解法
#include<cstdio>
#include<cstring>
int cnt1,cnt2;
struct STR
{
char name[100];
}str[205],M[205];
int main()
{
#ifdef LOCAL
freopen("in.txt","r",stdin);
#endif // LOCAL
int T;
scanf("%d",&T);
while(T--)
{
int N;
scanf("%d\n",&N);
for(int i = 0; i < N; i++)
gets(M[i].name);
for(int i = 0; i < N; i++)
gets(str[i].name);
cnt1 = cnt2 = N - 1;
while(cnt1 >= 0)
{
if(strcmp(str[cnt2].name,M[cnt1].name) == 0)
{cnt1--;cnt2--;}
else cnt1--;
}
while(cnt2 >= 0 )
printf("%s\n",str[cnt2--].name);
printf("\n");
}
return 0;
}