2011年8月19日 星期五

d478: 共同的數 - 簡易版

內容 :
    因為學長覺得d136太可怕,所以出一題簡單版的XD
    小潘跟小花都有很多個正整數,自己的數不會有重覆出現的,而且都是遞增排列。
    現在她們想要知道,兩個人的數有幾個重覆的呢?

輸入說明 :
    第一行有兩個數字n,m。 (1<=n<=100,1<=m<=10000)
    接著共有n筆測資,每筆測資共有兩行,分別代表兩個人擁有的數,每行共有m個數。
    所有數字都不大於2^31-1。

輸出說明 :
    每筆測資請輸出一個數字,
    代表兩個人的數有幾個重覆的。

範例輸入 :
2 6
1 5 6 8 9 13
3 4 5 7 8 11
4 6 7 14 16 23
6 9 12 13 16 23

範例輸出 :
2
3

提示 :
    如果這題AC了,可以去寫這題的進階版d136。

程式碼 :
#include<stdio.h>

int main()
{
    int i,j,n,m,same,a[2][10000];
    
    while(scanf("%d %d",&n,&m)==2)
    {
        
        while(n--)
        {
            for(i=0; i<m; i++)
                scanf("%d",&a[0][i]);
            for(i=0; i<m; i++)
                scanf("%d",&a[1][i]);
            i = j = same = 0; 
            while(i<m && j<m)
            {
                if(a[0][i] == a[1][j])
                {
                    same++;
                    i++, j++;
                }
                else if(a[0][i] > a[1][j])
                    j++;
                else
                    i++;
            }
            printf("%d\n",same);
        }
    }    
    return 0;
}



http://zerojudge.tw/ShowProblem?problemid=d478

2 則留言: