1 条题解

  • 0
    @ 2025-9-9 23:53:32

    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
    上传者