1 solutions

  • 0
    @ 2025-11-5 16:41:06

    C :

    #include <stdio.h>
    #include <string.h>
    int main()
    {
        int  avg,cgrade,art,sum,i,n,maxs,total;
        char name[21],maxn[21],leader,west;
        maxs=0;
        total=0;
        scanf("%d",&n);
        for (i=0;i<n;i++)
        {
            sum=0;
            scanf("%s %d %d %c %c %d",name,&avg,&cgrade,&leader,&west,&art);
            if (avg>80 && art>0) sum+=8000;
            if (avg>85 && cgrade>80) sum+=4000;
            if (avg>90) sum+=2000;
            if (west=='Y' && avg>85) sum+=1000;
            if (leader=='Y' && cgrade>80) sum+=850;
            if (sum>maxs)
            {
                maxs=sum;
                strcpy(maxn,name);
            }
            total+=sum;
        }
        printf("%s\n%d\n%d",maxn,maxs,total);
    
        return 0;
    }
    
    
    

    C++ :

    #include<iostream>
    #include<cstdlib>
    #include<cstdio>
    #include<algorithm>
    #include<string>
    using namespace std;
    struct q
    {
        string m;
        float f;
        float b;
        char x;
        char xb;
        int l;
        int j;
        int z;
    }a[110];
    int qw(const q &c,const q &v);
    int main()
    {
    	//freopen("scholar.in", "r", stdin);
    	//freopen("scholar.out", "w", stdout);
        int n,u,g=0;
        cin>>n;
        for(int i=1;i<=n;i++)
        {
            cin>>a[i].m>>a[i].f>>a[i].b>>a[i].x>>a[i].xb>>a[i].l;
            a[i].z=0;
            a[i].j=i;
            if(a[i].f>80&&a[i].l>0)
                a[i].z+=8000;
            if(a[i].f>85&&a[i].b>80)
                a[i].z+=4000;
            if(a[i].f>90)
                a[i].z+=2000;
            if(a[i].f>85&&a[i].xb=='Y')
                a[i].z+=1000;
            if(a[i].b>80&&a[i].x=='Y')
                a[i].z+=850;
        }
        sort(a+1,a+n+1,qw);
        for(int i=1;i<=n;i++)
            g+=a[i].z;
        cout<<a[1].m<<endl<<a[1].z<<endl<<g;
        return 0;
    }
    int qw(const q &c,const q &v)
    {
        if(c.z==v.z)
            return c.j<v.j;
        return c.z>v.z;
    }
    
    

    Pascal :

    label 10,11;
    type
      cody=record
        na:string[20];
        qm:integer;
        bj,lw:integer;
        p,w:char;
        jxj:integer;
        end;
    var 
      a:array[1..100] of cody; n,i,ans,max:longint; ch:char; maxname:string[20];
    begin
      readln(n);
      for i:=1 to n do begin a[i].na:='';
        repeat
          read(ch);
          if ch<>' ' then a[i].na:=a[i].na+ch;
        until ch=' ';
        with a[i] do 
          read(qm,bj);
         read(ch);
       10:  if ch=' 'then begin read(ch); goto 10; end;
          a[i].p:=ch;
         read(ch);
       11:  if ch=' ' then begin read(ch); goto 11;end;
          a[i].w:=ch;
          readln(a[i].lw);
        end;
      for i:=1 to n do
        with a[i] do
         begin
          jxj:=0;
          if (qm>80) and (lw<>0) then inc(jxj,8000);
          if (qm>85) and (bj>80) then inc(jxj,4000);
          if (qm>90) then inc(jxj,2000);
          if (qm>85) and (w='Y') then inc(jxj,1000);
          if (bj>80) and (p='Y') then inc(jxj,850);
        end;
      max:=-1;
      for i:=1 to n do
        begin
        if a[i].jxj>max then begin max:=a[i].jxj; maxname:=a[i].na; end;
        inc(ans,a[i].jxj);
        end;
      writeln(maxname);
      writeln(max);
      writeln(ans);
    end.
    
    • 1

    Information

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