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;
}

Download