1 条题解
-
0
C :
#include <stdio.h> #include <stdlib.h> #include <string.h> int main() { char name[50][100]; char a[100],b[100]; int income[100]={0}; int outcome[100]={0}; int n,i,t,t2,j,many,num; int temp2; while(~scanf("%d",&n)) { memset(income,0,sizeof(income)); memset(outcome,0,sizeof(outcome)); for(i=1;i<=n;i++) scanf("%s",name[i]); for(i=1;i<=n;i++) { scanf("%s",a); for(t2=1;t2<=n;t2++) { if(strcmp(a,name[t2])==0) {temp2=t2;break;} } scanf("%d%d",&many,&num); if(num==0) { //outcome[i]=0; income[i]+=many; } else { outcome[temp2]=many-many%num; //printf("outcome[%d]=%d \n",temp2,outcome[temp2]); for(j=1;j<=num;j++) { scanf("%s",b); for(t=1;t<=n;t++) { if(strcmp(b,name[t])==0) income[t]+=many/num; // printf("income[%d]=%d \n",t,income[t]); } } } } for(i=1;i<n;i++) { //printf("%s ",name[i]); //printf("outcome[%d]=%d ",i,outcome[i]); printf("%s ",name[i]); printf("%d\n",income[i]-outcome[i]); } printf("%s ",name[n]); printf("%d\n",income[n]-outcome[n]); } return 0; }C++ :
#include<iostream> #include<fstream> #include<string> #include<map> using namespace std; int main() { int np; while(cin>>np){ string names[50]; map <string,int> reci,given; for (int i=1;i<=np;i++) cin>>names[i]; for (int i=1;i<=np;i++) { string temp; int tempr,tempg,j; cin>>temp; cin>>tempg>>j; for (int k=1;k<=j;k++) { string temp2; cin>>temp2; reci[temp2]+=tempg/j; given[temp]+=tempg/j; } } for (int i=1;i<=np;i++) cout<<names[i]<<" "<<reci[names[i]]-given[names[i]]<<endl; } return 0; }
- 1
信息
- ID
- 1720
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- (无)
- 标签
- 递交数
- 0
- 已通过
- 0
- 上传者