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