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 一个数试试