#include<stdio.h>
#include<string.h>
int A[70000],B[70000],re[70000];
int bi[70000],top;
int main(){
int t,n,a,b,i,j,l,r,m,C=1;
scanf("%d",&t);
while(t--){
memset(re,-1,sizeof(re));
scanf("%d%d%d",&n,&a,&b);
a++,b++;
for(i=0;i<a;i++){
scanf("%d",&A[i]);
re[A[i]]=i+1;
}
for(i=0;i<b;i++){
scanf("%d",&B[i]);
if(re[B[i]]!=-1)
B[i]=re[B[i]];
else B[i]=0;
}
for(i=0;i<=n*n;i++)
bi[i]=int(1e8);
top=0;
for(i=0;i<b;i++){
if(B[i]==0) continue;
l=0,r=n*n+1;
while(l+1!=r){
m=(l+r)/2;
if(bi[m]<B[i]) l=m;
else r=m;
}
if(l+1>top) top=l+1;
bi[l+1]=B[i];
}
printf("Case %d: %d\n",C++,top);
}
}
沒有留言:
張貼留言