小明和小红去参加party。会场中总共有n个人,这些人中有的是朋友关系,有的则相互不认识。朋友关系是相互的,即如果A是B的朋友,那么B也是A的朋友。小明和小红想知道其中某两个人有多少个公共的朋友。
#include<stdio.h> int FindCommonF(int K1,int K2,int ia[100][101],int ja[100][101],int Nu,int c); int main() { int C; int n; scanf("%d",&C); int k[C]; int m[C]; int i[100][101]; int j[100][101]; int InputK1[C][101]; int InputK2[C][101]; for(int hh=0;hh<C;hh++) { for(int uu=0;uu<101;uu++) { j[hh][uu]=0; i[hh][uu]=0; InputK1[hh][uu]=0; InputK2[hh][uu]=0; } } for(int a=0;a<C;a++) { scanf("%d %d %d",&n,&m[a],&k[a]); int ii=0; for(ii=0;ii<m[a];ii++) { scanf("%d %d",&i[a][ii],&j[a][ii]); } int jj=0; for( jj=0;jj<k[a];jj++) { scanf("%d %d",&InputK1[a][jj],&InputK2[a][jj]); } } for(int b=0;b<C;b++) { printf("Case %d:\n",b+1); for(int kk=0;kk<k[b];kk++) { printf("%d\n",FindCommonF(InputK1[b][kk],InputK2[b][kk],i,j,m[b],b)); } } return 0; } int FindCommonF(int K1,int K2,int ia[100][101],int ja[100][101],int Nu,int c) { int C1=0; int C2=0; int Count=0; int CoF1[101]; int CoF2[101]; for(int q=0;q<101;q++){ CoF1[q]=0; CoF2[q]=0; } for(int i=0;i<Nu;i++) { if(ia[c][i]==K1&&ja[c][i]!=0) { CoF1[C1]=ja[c][i]; C1++; } if(ja[c][i]==K1&&ia[c][i]!=0) { CoF1[C1]=ia[c][i]; C1++; } if (ia[c][i]==K2&&ja[c][i]!=0) { CoF2[C2]=ja[c][i]; C2++; } if(ja[c][i]==K2&&ia[c][i]!=0) { CoF2[C2]=ia[c][i]; C2++; } } for(int n=0;n<C1;n++) { for(int k=0;k<C2;k++) { if(CoF1[n]==CoF2[k]) { Count++; } } } return Count; }