1. 程式人生 > >洛谷 - P1051 - 誰拿了最多獎學金 - 暴力

洛谷 - P1051 - 誰拿了最多獎學金 - 暴力

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 - 誰拿了最多獎學金 - 暴力