P1093 50分求助

P1093 [NOIP2007 普及组] 奖学金

shimucheng @ 2024-10-25 21:41:13

50分求助,代码如下,急等,请在我的代码下改一下,谢谢各位大佬。

#include<bits/stdc++.h>
using namespace std;
int n;
struct Node{
    int fen,xh,c,m,e;
}a[10000];
bool cmp (Node x,Node y){//结构体排序 
    return x.fen>y.fen;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) {
        cin>>a[i].c>>a[i].m>>a[i].e;
        a[i].xh=i;
        a[i].fen=a[i].c+a[i].m+a[i].e;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){ 
        for(int j=1;j<i;j++){
            if(a[i].fen==a[j].fen){
                if(a[i].c<a[j].c) swap(a[i],a[j]);
            }
        }
    }
    for(int i=1;i<=5;i++) cout<<a[i].xh<<' '<<a[i].fen<<endl;
    return 0;
}

by shimucheng @ 2024-10-25 21:44:34

题目看错了,改了一下,70分。

#include<bits/stdc++.h>
using namespace std;
int n,ba,bb,bc;
struct Node{
    int fen,xh,c,m,e;
}a[10000];
bool cmp (Node x,Node y){//结构体排序 

    return x.fen>y.fen;
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) {
        cin>>a[i].c>>a[i].m>>a[i].e;
        a[i].xh=i;
        a[i].fen=a[i].c+a[i].m+a[i].e;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=n;i++){ 
        for(int j=1;j<i;j++){
            if(a[i].fen==a[j].fen){
                if(a[i].c<a[j].c) swap(a[i],a[j]);
                else if(a[i].xh<a[j].xh) swap(a[i],a[j]);
            }
        }
    }
    for(int i=1;i<=5;i++) cout<<a[i].xh<<' '<<a[i].fen<<endl;
    return 0;
}

|