C语言题解
#include <stdio.h>
#include <math.h>
#include <string.h>
#define N 100001
int a[N],b[N];
int main()
{
int n,m,fp,lp,flag;
memset(a,0,sizeof(a));
memset(b,0,sizeof(b));
scanf("%d %d",&n,&m);
for(int i=0;i<n;i++)
scanf("%d",&a[i]);
for(int i=0;i<m;i++)
scanf("%d",&b[i]);
flag=1;
for(int i=0,j=0;i<n;)
{
fp=lp=-1;
while(a[i]!=b[j]&&j<m) j++;
if(b[j]==a[i]) fp=j;
i++;
j++;
while(a[i]!=b[j]&&j<m) j++;
if(b[j]==a[i]) lp=j;
if(lp<=fp||lp>m)
{
printf("No\n");
flag=0;
break;
}
}
if(flag) printf("Yes\n");
return 0;
}