解题思路:将jack的光盘存到数组中,
在输入Jill 的光盘时用二分法搜索;
#include <cstdio>
#include <cstring>
#define inf 1000005
using namespace std;
typedef long long ll;
ll N,M;
ll jack[inf];
int f(ll x,ll z)
{
ll left = 1,right = x;
if(z>jack[right] || z<jack[left])
{
return 0;
}
while(right>=left)
{
ll mid = (left+right)/2;
if(z==jack[mid]) return 1;
else if(z>jack[mid]) left = mid+1;
else right = mid-1;
}
return 0;
}
int main()
{
ll x,sum;
while(scanf("%lld%lld",&N,&M) && N+M)
{
sum = 0;
for(int i=1;i<=N;i++)
{
scanf("%lld",&jack[i]);
}
for(int i=1;i<=M;i++)
{
scanf("%lld",&x);
sum += f(N,x);
}
printf("%lld\n",sum);
}
return 0;
}