70分求助

P1093 [NOIP2007 普及组] 奖学金

大海中的孤帆 @ 2022-01-09 12:14:14

70分代码,求帮助,6,7,8没过

#include<iostream>
using namespace std;
int a[500][4],xh[500];
void jh(int a1,int b)
{
    int k=a[a1][3];
    a[a1][3]=a[b][3];
    a[b][3]=k;

    k=a[a1][0];
    a[a1][0]=a[b][0];
    a[b][0]=k;

    k=xh[a1];
    xh[a1]=xh[b];
    xh[b]=k;
}
int main()
{
    int n;
    cin>>n;
    for(int i=0;i<n;++i)
    {
        for(int j=0;j<3;++j)
        {
            cin>>a[i][j];
            a[i][3]+=a[i][j];
        }
        xh[i]=i+1;
    }
    for(int i=0;i<n;++i)
        for(int j=1;j<n-i;++j)
        {
            if(a[j][3]>a[j-1][3])//分数比较
                jh(j,j-1);
            if(a[j][3]==a[j-1][3])
            {
                if(a[j][0]>a[j-1][0])//语文比较
                    jh(j,j-1);
                if(a[j][0]==a[j][0])
                    if(xh[j]<xh[j-1])//学号比较
                        jh(j,j-1);
            }
        }
    for(int i=0;i<5;++i)
        cout<<xh[i]<<" "<<a[i][3]<<endl;
    return 0;
}

|