SEARCH1 - Other search problem
Tác giả: skyvn97
Ngôn ngữ: C++
#include<stdio.h>
#define MAX 100010
long a[MAX];
long b[MAX];
long c[MAX];
long m,n,p;
long max,len,cnt;
long i,j,tmp;
int main(void)
{
scanf("%ld",&m);
scanf("%ld",&n);
scanf("%ld",&p);
for (i=1;i<=m;i=i+1)
{
scanf("%ld",&tmp);
a[tmp]++;
}
for (i=1;i<=n;i=i+1)
{
scanf("%ld",&tmp);
b[tmp]++;
}
max=0;
len=0;
cnt=0;
for (i=1;i<=p;i=i+1)
{
scanf("%ld",&tmp);
if ((a[tmp]>0) && (b[tmp]>0))
{
printf("0");
return 0;
}
if (a[tmp]>c[tmp])
{
c[tmp]++;
len++;
cnt++;
continue;
}
if (b[tmp]>0)
{
if (cnt==m)
{
if (len>max) max=len;
}
for (j=0;j<MAX;j=j+1) c[j]=0;
cnt=0;
len=0;
continue;
}
len++;
}
if ((cnt==m) && (len>max)) max=len;
printf("%ld",max);
return 0;
}