2 99 2 49 49 2 50 50 11 9 1 2 3 4 5 6 7 8 9 10 10 9 8 7 6 5 4 3 2 1
4 9
1 #include <stdio.h> 2 int sum; 3 int s(int x[],int y[]) 4 { 5 int i,t,ans=0; 6 for(i=1;i<=10000;i++) 7 { 8 // printf("%d\n",i); 9 if(x[i]==0) continue; 10 else if(sum-i>0) 11 { 12 t=sum-i; 13 ans+=x[i]*y[t]; 14 } 15 } 16 return ans; 17 } 18 int main() 19 { 20 int n,k,ans; 21 int a[10002],b[10002]; 22 int i,j; 23 scanf("%d",&n); 24 while(n--) 25 { 26 ans=0; 27 scanf("%d",&sum); 28 scanf("%d",&a[0]);//a[0]=lena 29 for(i=1;i<=a[0];i++) 30 a[i]=0; 31 for(i=1;i<=a[0];i++) 32 { 33 scanf("%d",&k); 34 a[k]++; 35 } 36 scanf("%d",&b[0]);//b[0]=lenb 37 for(i=1;i<=b[0];i++) 38 b[i]=0; 39 for(i=1;i<=b[0];i++) 40 { 41 scanf("%d",&k); 42 b[k]++; 43 } 44 //input finished 45 //if(a[0]<=b[0]) 46 ans=s(a,b); 47 //else ans=s(b,a); 48 printf("%d\n",ans); 49 } 50 return 0; 51 }
原文:http://www.cnblogs.com/KakagouLT/p/4995412.html