#include<stdio.h>
struct stu{
int num;
int mark;
};
int main(void)
{
int n,m,i,j,min,max,t;
struct stu c[5001];
scanf("%d%d",&n,&m);
m=m+m/2;
for(i=0;i<n;i++)
scanf("%d%d",&c[i].num,&c[i].mark);
for(i=0;i<n-1;i++)
{
max=i;
for(j=i+1;j<n;j++)
max=(c[max].mark>=c[j].mark)?max:j;
if(max!=i)
c[5000]=c[i],c[i]=c[max],c[max]=c[5000];
}
t=c[m].mark;
for(i=0;c[i].mark>=t;i++)
{
min=i;
for(j=i+1;c[j].mark==c[i].mark;j++)
min=(c[min].num<=c[j].num)?min:j;
if(min!=i)
c[5000]=c[i],c[i]=c[min],c[min]=c[5000];
}
printf("%d %d\n",t,i);
t=i;
for(i=0;i<t;i++)
printf("%d %d\n",c[i].num,c[i].mark);
return 0;
}
全部评论
(2) 回帖