/* ID: gsq LANG: C TASK: gift1 */ #include <stdio.h> #include<string.h> int n,w,i,a,t,b,j,s[11],s2[11]; char m[11][15],q[15]; int seek (char q[]) /*定义一个函数找名字的标号*/ { int s,i; s=0; for (i=0;i<n;i++) if (strcmp(q,m[i])==0) s=i; return(s); } main () { FILE *fin = fopen ("gift1.in", "r"); FILE *fout = fopen ("gift1.out", "w"); fscanf(fin,"%d",&n); for (i=0;i<n;i++) { fscanf(fin,"%s",&m[i]); s2[i]=0; } for (i=1;i<=n;i++) /*边读入边处理数据*/ {fscanf(fin,"%s",&q); t=seek(q); fscanf(fin,"%d %d",&a,&b); s[t]=a; if (b!=0) { s[t]=s[t]-s[t]%b; /*把给出去的钱算出来......*/ w=s[t]/b; for (j=1;j<=b;j++) /*分别将每个人得到的钱累加到其标号对应的数组元素下*/ { fscanf(fin,"%s",&q); t=seek(q); s2[t]+=w; } } } for (i=0;i<n;i++) fprintf (fout, "%s %d\n", m[i],s2[i]-s[i]); exit(0); }