d478

輸入說明 :

第一行有兩個數字n,m。 (1<=n<=100,1<=m<=10000)

接著共有n筆測資,每筆測資共有兩行,分別代表兩個人擁有的數,每行共有m個數。

所有數字都不大於231-1。

輸出說明 :

每筆測資請輸出一個數字,

代表兩個人的數有幾個重覆的。

已排序好,所以搜尋很簡單

#include<stdio.h>
int main()
{
    int n,m;
    int i,j,k;
    int count;
    scanf("%d %d",&n,&m);    
    for(k=0;k<n;k++)
    {   

         count=0;
        int array1[10000]={0};
        int array2[10000]={0};

        for(i=0;i<m;i++)
        {
            scanf("%d",&array1[i]);
        }    

        for(i=0;i<m;i++)
        {
            scanf("%d",&array2[i]);
        }    
        i=0;
        j=0;

        while(i<m&&j<m)
        {
            if(array1[j]==array2[i])
            {
                count++;
                i++;
                j++;
            }
            else if(array2[i]>array1[j])
            j++;
            else
            i++;
        }        
        printf("%d\n",count);
    }
return 0;
}