求大佬帮忙看一下为什么RE

P1093 [NOIP2007 普及组] 奖学金

xuhaosheng @ 2024-05-01 23:34:15

#include<bits/stdc++.h>
using namespace std;
int a[4005],a1[4005],a2[4005],a3[4005],a4[4005];
int s(int x,int x1)
{
    swap(a[x],a[x1]);
    swap(a1[x],a1[x1]);
    swap(a2[x],a2[x1]);
    swap(a3[x],a3[x1]);
    swap(a4[x],a4[x1]);
}
int main() {
    int n;
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>a1[i]>>a2[i]>>a3[i];
        a[i]=i;
        a4[i]=a1[i]+a2[i]+a3[i];
    }

    for(int i=1;i<n;i++)
    {
        for(int j=i+1;j<=n;j++)
        {
            if(a4[j]>a4[i])
            {
                s(i,j);
            }
            else if(a4[j]==a4[i]&&a1[j]>a1[i])
            {
                s(i,j);
            }
            else if(a4[j]==a4[i]&&a1[j]==a1[i]&&a[j]<a[i])
            {
                s(i,j);
            }
        }
    }
    for(int i=1;i<=n;i++)
    {
        cout<<a[i]<<" "<<a4[i]<<endl;
    }
    return 0;
}
//  scanf("%d",&a[i]);
//  printf("%d",r);

by mike05 @ 2024-05-02 00:08:40

你的函数s类型错了,不是 int 类型的,应该是 void 类型的 还有,只要求输出前五名,第四十行 i <= n 应该为 i <= 5


by yzm_lcoi_23 @ 2024-05-02 00:16:06

@mike05 我路过。反复研究测试点的反馈,感到很奇怪:改了n=>5后,明明文本对照一模一样,但测试点会报出对不上的情况。看来问题就在函数类型上。但不明所以。请教


by mike05 @ 2024-05-02 08:25:41

@yzm_lcoi_23 int类型的函数是一定要 return 的你可以随便 return 一个数试试


|