题目
求每个人收到的比送出的钱多的数目。
分析
模拟,注意字符串和0不能作除数
代码
#include <cstdio>
#include <cstring>
using namespace std;
char x[14],p[14],a[11][14]; int n,b[11];
int main(){
scanf("%d",&n);
for (int i=1;i<=n;i++) scanf("\n%s",a[i]);
for (int i=1;i<=n;i++){
scanf("\n%s",x); int y,z;
for (int j=1;j<=n;j++)
if (strstr(x,a[j])){
scanf("\n%d%d",&y,&z);
if (z) b[j]-=y/z*z;//送出去的钱减掉
for (int k=1;k<=z;k++){
scanf("\n%s",p);
for (int t=1;t<=n;t++)
if (strstr(p,a[t]))
{b[t]+=y/z; break;}//得到的钱加上
}
break;
}
}
for (int i=1;i<=n;i++) printf("%s %d\n",a[i],b[i]);
return 0;
}