一开始90分

P1093 [NOIP2007 普及组] 奖学金

LHZ_0123 @ 2018-03-15 10:35:01

一开始90分,排序是总分一样的话,语文成绩高的在前面,如果语文成绩一样,那么竟然是数学成绩高的在后面,,,,有毒

#include<iostream>
#include<algorithm>
using namespace std;
struct s{
    int id,a,b,c,total=0;
}stu[333];
bool cmp(s a,s b){
    if(a.total!=b.total)
    return a.total>b.total;
    else{
        if(a.a!=b.a)
        return a.a>b.a;
        else{
            if(a.b!=b.b )
                return a.b<b.b;
            else{
                if(a.c!=b.c )
                return a.c>b.c; 
                else{
                    return a.id<b.id;
                }
            }
        }
    }
}
int main()
{
    int i,j,n;
    cin >>n;
    for(i=1;i<=n;i++){
        stu[i].id=i;
        cin >>stu[i].a>>stu[i].b>>stu[i].c;
        stu[i].total=stu[i].a+stu[i].b+stu[i].c;
    }
    sort(stu+1,stu+n+1,cmp);
    for(i=1;i<=5;i++){
        cout <<stu[i].id<<" "<<stu[i].total<<endl;
    }
    return 0;
}

|