?
题目描述
在模拟考试结束后不久,所有考生的分数已经汇总完成,老师们开始估计某所大学的录取分数线。分数线的划定是一个复杂的过程,但是可以根据以往录取人数进行估计。
老师们的估计方法如下,先得到某所大学以往的录取人数,k人。那么总分在前k名的同学都可以进入这所大学,第k名同学的分数就被作为分数线。但是考试中往往有分数相同的人,若分数线上的人有多名,那么这些同学将同时被录取,录取人数可能超过k人。
现在校长想要知道某所学校的分数线,以及实际可以录取的人数。
输入
第一行两个整数n和k,分别表示参加考试的人数和以往录取人数k。
接下来n行,每行1个整数,表示每位同学的总分。
输出
包含一行,两个整数,第一个是录取分数线,第二个表示实际录取的人数。两个数之间用一个空格分开。
样例输入?Copy
6 3
721
612
603
658
598
612
样例输出?Copy
612 4
代码实现:
#include <bits/stdc++.h>
using namespace std;
int main()
{
?? ?int cnt=0;
?? ?int n,m,a[100000],b,c,d;
?? ?int i;
?? ?cin>>n>>m;
?? ?for(i=1;i<=n;i++)
?? ?{
?? ??? ?cin>>a[i];
?? ?}
?? ?sort(a+1,a+n+1,greater<int>());
?? ?d=a[n-m];
?? ?for(i=n;i>0;i--)
?? ?{
?? ??? ?if(a[i]==d)
?? ??? ?cnt++;
?? ??? ?
?? ?}
?? ?cout<<a[n-m]<<" "<<cnt+m-1;
?? ?return 0;
?}?