1 3 2 3 3 4 1 7 0 0
1 10 2 3 3 4
#include<stdio.h>
#include<string.h>
#define max 110
int main()
{
	int m,n,i,j,k,sum;
	int s[max],a[max],b[max];
	memset(a,0,sizeof(a));
	memset(b,0,sizeof(b));
	for(i=1;i<=max;i++)
	s[i]=i;
	k=1;
	for(i=1;i<=max;i++)
	{
		scanf("%d%d",&a[k],&b[k]);
		s[k]=a[k];
		if(a[k]==0&&b[k]==0)
		break;
		k++;
	}
    for(i=1;i<=k;i++)
    {
    	sum=0;
        for(j=1;j<=k;j++)
        {
        	if(s[i]==a[j]&&a[j]!=0)
        	{
        		sum+=b[j];
        		a[j]=0;
        		b[j]=0;
        	}
        }
        if(sum>0)
        printf("%d %d\n",s[i],sum);
    }
	return 0;
}
原文:http://www.cnblogs.com/tonghao/p/4506651.html