70求助

P1093 [NOIP2007 普及组] 奖学金

pusx_loading @ 2024-12-17 19:51:03

#include<bits/stdc++.h>
using namespace std;
int m,yu[310],shu[310],ying[310],t[310],p[310];
int main(){
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>yu[i]>>shu[i]>>ying[i];
        t[i]=yu[i]+shu[i]+ying[i];
        p[i]=i+1;
    }
    for(int i=0;i<m;i++){
        for(int k=0;k<m-i-1;k++){
            if(t[k]>t[k+1]){
                swap(t[k],t[k+1]);
                swap(p[k],p[k+1]);
            }
        }
    }
    for(int i=1;i<m;i++){
        if(t[i]==t[i-1] && yu[i]<yu[i-1]){
            swap(t[i],t[i-1]);
            swap(p[i],p[i-1]);
        }
        else if(t[i]==t[i-1] && yu[i]==yu[i-1] && p[i]>p[i-1]){
            swap(t[i],t[i-1]);
            swap(p[i],p[i-1]);
        }           
    }
    for(int i=m-1;i>m-6;i--){
    cout<<p[i]<<" "<<t[i]<<endl;
    }
    return 0;
}

不知道哪里错了


by __Toator__ @ 2024-12-17 19:52:53

为啥不用结构体


by pusx_loading @ 2024-12-19 18:44:57

@Toator 要改吗?我可以用


by __Toator__ @ 2024-12-19 19:01:23

@pusx_loading 用结构体存完排个序就行。。。


by __Toator__ @ 2024-12-19 19:02:12

@pusx_loading 你既然会为什么不用


by pusx_loading @ 2024-12-19 19:04:58

@Toator 主要是我不知道我哪错了,我测了好几遍样例了


by pusx_loading @ 2024-12-19 19:06:38

@Toator

#include<bits/stdc++.h>
using namespace std;
int m;
struct stu{
    int yu,shu,ying,t,p;
};
stu st[310];
int main(){
    cin>>m;
    for(int i=0;i<m;i++){
        cin>>st[i].yu>>st[i].shu>>st[i].ying;
        st[i].t=st[i].yu+st[i].shu+st[i].ying;
        st[i].p=i+1;
    }
    for(int i=0;i<m;i++){
        for(int k=0;k<m-i-1;k++){
            if(st[k].t>st[k+1].t){
                swap(st[k].t,st[k+1].t);
                swap(st[k].p,st[k+1].p);
            }
        }
    }
    for(int i=1;i<m;i++){
        if(st[i].t==st[i-1].t && st[i].yu<st[i-1].yu){
            swap(st[i].t,st[i-1].t);
            swap(st[i].p,st[i-1].p);
        }
        else if(st[i].t==st[i-1].t && st[i].yu==st[i-1].yu && st[i].p>st[i-1].p){
            swap(st[i].t,st[i-1].t);
            swap(st[i].p,st[i-1].p);
        }           
    }
    for(int i=m-1;i>m-6;i--){
    cout<<st[i].p<<" "<<st[i].t<<endl;
    }
    return 0;
}

by __Toator__ @ 2024-12-19 19:09:37

@pusx_loading sort


by __Toator__ @ 2024-12-19 19:10:47

#include<iostream>
#include<cmath>
#include<algorithm>
using namespace std;
struct node{
    int yu,shu,ying,zf,id;
}a[302];
int cmp(node a,node b){
    if(a.zf!=b.zf){
        return a.zf>b.zf; 
    }else if(a.yu!=b.yu){
        return a.yu>b.yu;
    }else{
        return a.id<b.id;
    }
} 
int main(){
    int n;
    cin>>n;
    for(int i=1;i<=n;i++){
        cin>>a[i].yu>>a[i].shu>>a[i].ying;
        a[i].zf=a[i].yu+a[i].shu+a[i].ying;
        a[i].id=i;
    }
    sort(a+1,a+n+1,cmp);
    for(int i=1;i<=5;i++){
        cout<<a[i].id<<' '<<a[i].zf<<endl;
    }
    return 0;
}

by pusx_loading @ 2024-12-19 19:34:45

@Toator 用结构体我就AC了?为什么啊


by pusx_loading @ 2024-12-19 19:39:28

@Toator 先谢谢,麻烦你了


| 下一页