Rank List CodeForces - 166A

本文详细介绍了 CodeForces 166A 题目中的比赛排名算法实现过程,包括如何通过比较队伍解决的问题数量及总罚时来确定排名,以及如何处理并列情况。提供了完整的 C++ 实现代码。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

H - Rank List

CodeForces - 166A 


Another programming contest is over. You got hold of the contest's final results table. The table has the following data. For each team we are shown two numbers: the number of problems and the total penalty time. However, for no team we are shown its final place.

You know the rules of comparing the results of two given teams very well. Let's say that teama solved pa problems with total penalty timeta and teamb solved pb problems with total penalty timetb. Teama gets a higher place than team b in the end, if it either solved more problems on the contest, or solved the same number of problems but in less total time. In other words, teama gets a higher place than team b in the final results' table if either pa > pb, orpa = pb andta < tb.

It is considered that the teams that solve the same number of problems with the same penalty time share all corresponding places. More formally, let's say there is a group ofx teams that solved the same number of problems with the same penalty time. Let's also say thaty teams performed better than the teams from this group. In this case all teams from the group share placesy + 1, y + 2,..., y + x. The teams that performed worse than the teams from this group, get their places in the results table starting from they + x + 1-th place.

Your task is to count what number of teams from the given list shared the k-th place.

Input

The first line contains two integers n andk (1 ≤ k ≤ n ≤ 50). Thenn lines contain the description of the teams: thei-th line contains two integers pi and ti (1 ≤ pi, ti ≤ 50) — the number of solved problems and the total penalty time of the i-th team, correspondingly. All numbers in the lines are separated by spaces.

Output

In the only line print the sought number of teams that got the k-th place in the final results' table.

Example
Input
7 2
4 10
4 10
4 10
3 20
2 1
2 1
1 10
Output
3
Input
5 4
3 1
3 1
5 3
3 1
3 1
Output
4
Note

The final results' table for the first sample is:

  • 1-3 places — 4 solved problems, the penalty time equals 10
  • 4 place — 3 solved problems, the penalty time equals 20
  • 5-6 places — 2 solved problems, the penalty time equals 1
  • 7 place — 1 solved problem, the penalty time equals 10

The table shows that the second place is shared by the teams that solved 4 problems with penalty time 10. There are 3 such teams.

The final table for the second sample is:

  • 1 place — 5 solved problems, the penalty time equals 3
  • 2-5 places — 3 solved problems, the penalty time equals 1

The table shows that the fourth place is shared by the teams that solved 3 problems with penalty time 1. There are 4 such teams.




#include<cstdio>
#include<cstring>
#include<iostream>
#include<cstdlib>
#include<algorithm>
using namespace std;
struct node
{
    int x;
    int y;
};

struct node stu[55];
int cmp(node a,node b)
{
    return a.x!=b.x?
            a.x>b.x:a.y<b.y;
}
int main()
{
    int n,k,i;
    while(scanf("%d%d",&n,&k)!=EOF)
    {
        int sum=0;
        for(i=0;i<n;i++)
            scanf("%d%d",&stu[i].x,&stu[i].y);
        sort(stu,stu+n,cmp);
        for(i=0;i<n;i++)
        {
            if(stu[k-1].x==stu[i].x&&stu[k-1].y==stu[i].y)
                sum++;
        }
        printf("%d\n",sum);
    }
    return 0;
}


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值