水题啊!!!
用结构体存储数据,然后排序。排完序之后要算出录取的人数。
注意:录取m*150%(向上取整)的人数以后,他的下一位可能也是这个分数。(我第一次没通过就在这)
上代码吧:

#include<bits/stdc++.h>
using namespace std;

struct student
{
    int k;
    int s;
}stu[5010];

bool cmp(student a,student b)
{
    if(a.s==b.s)
    {
        return a.k<b.k;
    }

    return a.s>b.s;
}

int main()
{
    int n,m;
    cin>>n>>m;

    for(int i=1;i<=n;i++)
    {
        cin>>stu[i].k>>stu[i].s;
    }

    sort(stu+1,stu+1+n,cmp);

    int number=floor(m*1.50);
    int fsx=stu[number].s;

    cout<<fsx<<" ";

    int i=number;
    while(stu[i].s==stu[i+1].s)
    {
        i++;
    }
    cout<<i<<endl;

    for(int j=1;j<=i;j++)
    {
        cout<<stu[j].k<<" "<<stu[j].s<<endl;
    }


    system("pause");

    return 0;
}