1 solutions
-
0
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