C实现
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main()
{
char agency[1005][16];
char server[2005][16];
int n,m;
int i,j;
int flag;
int res;
int start;
int maxl;
while(~scanf("%d",&n))
{
for(i=0;i<n;i++)
scanf("%s",agency[i]);
scanf("%d",&m);
for(i=0;i<m;i++)
scanf("%s",server[i]);
if(n==1)
{
for(i=0;i<m;i++)
{
if(strcmp(agency[0],server[i])==0)
{
printf("-1\n");
break;
}
}
if(i>=m)
printf("0\n");
}
else
{
flag=1;
res=0;
start=0;
maxl=-1;
while(flag)
{
flag=0;
for(i=0;i<n;i++)
{
for(j=start;j<m;j++)
{
if(strcmp(agency[i],server[j])==0)
{
break;
}
}
if(j>maxl)
maxl=j;
}
if(maxl<m)
{
flag=1;
res++;
}
start=maxl+1;
}
printf("%d\n",res);
}
}
return 0;
}