洛谷 - P1051 - 誰拿了最多獎學金 - 暴力
阿新 • • 發佈:2019-01-25
pac pan sin 不用 i++ fine calc long long using
這個根本就不用排序啊……
#include<bits/stdc++.h> using namespace std; #define ll long long int n; struct P{ char name[25]; int f; int c; char s[5]; char w[5]; int p; int idx; int money; void calc(){ money=0; if(p&&f>80) money+=8000;if(f>85&&c>80) money+=4000; if(f>90) money+=2000; if(w[0]==‘Y‘&&f>85) money+=1000; if(s[0]==‘Y‘&&c>80) money+=850; } bool operator<(P p){ if(money==p.money) return idx<p.idx;else return money>p.money; } }p[105]; int main(){ scanf("%d",&n); int sum=0; int maxmoney=-1; int maxi=0; for(int i=0;i<n;i++){ scanf("%s%d%d%s%s%d",p[i].name,&p[i].f,&p[i].c,p[i].s,p[i].w,&p[i].p); p[i].idx=i; p[i].calc(); sum+=p[i].money; if(p[i].money>maxmoney){ maxi=i; maxmoney=p[i].money; } } //sort(p,p+n); //printf("%s\n%d\n",p[0].name,p[0].money); printf("%s\n%d\n%d\n",p[maxi].name,p[maxi].money,sum); }
洛谷 - P1051 - 誰拿了最多獎學金 - 暴力