转载:http://blog.csdn.net/yongnuzhibu/article/details/7442248
#include<iostream>
#include<algorithm>
#include<cstdio>
#include<cstdlib>
#include<cmath>
#include<cstring>
#include<vector>
#include<stack>
#include<map>
#define maxn 70
#define lson step<<1
#define rson step<<1|1
using namespace std;
bool dfs(int n,int A[],int B[],int C[])
{
if(n==0)
return true;
if(B[0]==n)
return false;
else if(A[0]==n)
{
return dfs(n-1,A+1,C,B);
}
else if(C[0]==n)
{
return dfs(n-1,B,A,C+1);
}
return true;
}
int main()
{
int T,n,m,p,q;
cin>>T;
while(T--)
{
int A[maxn],B[maxn],C[maxn];
cin>>n;
cin>>m;
for(int i=0;i<m;i++)
{
cin>>A[i];
}
cin>>p;
for(int i=0;i<p;i++)
{
cin>>B[i];
}
cin>>q;
for(int i=0;i<q;i++)
{
cin>>C[i];
}
if(dfs(n,A,B,C)==true)
{
cout << "true\n";
}
else
cout << "false\n";
}
return 0;
}