1 solutions

  • 0
    @ 2025-11-5 20:06:53

    C++ :

    #include<iostream>
    #include<cstring>
    #include<cstdio>
    using namespace std;
    struct student
    {
    	string name;
    	int qm;
    	int bj;
    	char gb;
    	char xb;
    	int lw;
    	int money;
    };
    int n;
    student a[110];
    int sum_money=0,k;
    void init();
    void print();
    void work();
    int main()
    {
    	init();
    	work();
    	print();
    	return 0;
    }
    void init()
    {
    	//freopen("test.in","r",stdin);
    	//freopen("nphs.out","w",stdout);	
    	cin>>n;	
    	for(int i=1;i<=n;++i)
    	{
    		cin>>a[i].name>>a[i].qm>>a[i].bj>>a[i].gb>>a[i].xb>>a[i].lw;		
    	}
    	//for(int i=1;i<=n;++i)
    	//cout<<a[i].name<<' '<<a[i].qm<<' '<<a[i].bj<<' '<<a[i].gb<<' '<<a[i].xb<<' '<<a[i].lw<<endl;
    }
    void work()
    {
    	int max=0;
    	for(int i=1;i<=n;++i)
    	{
    		a[i].money=0;
    		if((a[i].qm>80)&&(a[i].lw>0)) a[i].money+=8000;
    		if((a[i].qm>85)&&(a[i].bj>80))a[i].money+=4000;
    		if(a[i].qm>90)a[i].money+=2000;
    		if((a[i].qm>85)&&(a[i].xb=='Y'))a[i].money+=1000;
    		if((a[i].bj>80)&&(a[i].gb=='Y'))a[i].money+=850;
    		if(max<a[i].money)
    		{
    			max=a[i].money;
    			k=i;
    		}
    		sum_money+=a[i].money;
    	}
    }
    void print()
    {
    	cout<<a[k].name<<endl;
    	cout<<a[k].money<<endl;
    	cout<<sum_money<<endl;
    }
    

    Pascal :

    var i,j,sum,max,n,m:longint;
        qimo,pingyi,lunwen:integer;
        ganbu,xibu:string;
        maxn,s:string[35];
        name1,name2:string;
    begin
        {assign(input,'scholar.in');
        assign(output,'scholar.out');
        reset(input);
        rewrite(output);}
        readln(n);
        max:=0;
        sum:=0;
        for i:=1 to n do
          begin
            readln(s);
            j:=pos(' ',s);
            name1:=copy(s,1,j-1);
            delete(s,1,j);
            j:=pos(' ',s);
            val(copy(s,1,j-1),qimo);
            delete(s,1,j);
            j:=pos(' ',s);
            val(copy(s,1,j-1),pingyi);
            delete(s,1,j);
            ganbu:=copy(s,1,1);
            xibu:=copy(s,3,1);
            delete(s,1,4);
             val(s,lunwen);
             m:=0;
             if (qimo>80)and(lunwen>=1) then m:=m+8000;
                if (qimo>85)and(pingyi>80) then m:=m+4000;
                if qimo>90 then m:=m+2000;
                if (qimo>85)and(xibu='Y') then m:=m+1000;
                if (pingyi>80)and(ganbu='Y') then m:=m+850;
                sum:=sum+m;
                if m>max then
                   begin
                      max:=m;
                      maxn:=name1;
                  end
           end;
         writeln(maxn);
         writeln(max);
         writeln(sum);
         {close(input);
         close(output);}
    end.
    
    • 1

    Information

    ID
    20021
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By