???
2023-11-29 22:18:36
发布于:江苏
69阅读
0回复
0点赞
这个咋WA了
我服了
#include<bits/stdc++.h>
using namespace std;
struct people
{
int id,score;
}a[5010];
bool jntm(people x,people y)
{
if(x.score!=y.score)
return x.score>y.score;
else if(x.id!=y.id)
return x.id<y.id;
}
int main()
{
int n,m;
cin>>n>>m;
for(int i=0;i<n;i++)
cin>>a[i].id>>a[i].score;
sort(a,a+n,jntm);
int t=m*1.5+1;
cout<<a[t-1].score<<" "<<t<<endl;
for(int i=0;i<m*1.5;i++)
cout<<a[i].id<<" "<<a[i].score<<endl;
return 0;
}
求各位大佬帮帮!
全部评论 6
#include <stdio.h> void sort(int a[],int b[],int n){ int i,j,t,tt; for(i = 0; i < n-1; i++) { for(j = 0; j < n-i-1; j++) { if(b[j] < b[j+1] || (b[j] == b[j+1] && a[j] > a[j+1])) { t = b[j]; tt = a[j]; b[j] = b[j+1]; a[j] = a[j+1]; b[j+1] = t; a[j+1] = tt; } } } }int main(){ int n,m,mm; scanf("%d %d",&n,&m); int i,s = 0,fen; int a[5000],b[5000]; mm=m*1.5; for(i = 0; i < n; i++){ scanf("%d %d",&a[i],&b[i]); }sort(a,b,n); fen = b[mm-1]; for(i = 0; i < n; i++){ if(b[i]>=fen) s++; } printf("%d %d\n",fen,s); for(i = 0; i < s; i++) { printf("%d %d\n",a[i],b[i]); } return 0; }
2024-08-30 来自 山东
0这是AI说的
2024-03-02 来自 浙江
03.先输出面试分数线和实际进入面试的选手人数,然后按要求输出这些选手的信息。
2024-03-02 来自 浙江
02.面试分数线line的确定:根据排名第m*1.5(向下取整)的选手的成绩确定面试分数线。
2024-03-02 来自 浙江
01.计算t时的调整
原代码中,t=m1.5+1;可能会导致错误的分数线计算。正确的应该是(int)(m * 1.5) - 1;,因为我们需要的是排名m1.5(向下取整)的选手的成绩作为分数线,而数组下标是从0开始的,所以需要减1。2024-03-02 来自 浙江
0如果分数一样的话,就得都输出,而不是只输出前m*1.5个,不然如果id大的但过分数线的就不会被进入面试,很不公平()
2024-02-17 来自 广东
0
有帮助,赞一个