Logo Universal Online Judge

UOJ

时间限制:1 s 空间限制:128 MB
Statistics

【题目描述】
ZGY报名参加了C++锦标赛,在这个比赛中前K名可以获得一本《C++ Primer》,当然ZGY也想要一本。
这个比赛已经有n个人参加,并且互相之间已经进行了比赛,每一个人都有一个得分,用于最后排名。ZGY作为第n + 1个参赛者,需要与之前的每一个人打一场比赛,当然ZGY最开始的得分等于0。
对于每场比赛,有两个人参加,不会存在平局,胜者得分增加1,败者得分不变。最后按照 得分从高到低来排名,假设有人与ZGY最终得分相同,那么如果那个人曾经输给了ZGY就会排在ZGY后面,否则会排在ZGY的前面。
如果ZGY赢了某个人,就需要消耗相应的RP值,现在ZGY可以决定赢那些人,所以ZGY想知道最少需要消耗多少RP值才能够获得一本《C++ Primer》。
【输入格式】
本题包含多组数据,第一行读入一个整数T表示数据组数
对于每一组数据
第一行,包含两个整数 n, k表示在ZGY之前已经有n个人参加比赛,前k名可以获得《C++ Primer》。
接下来n行,每行包含两个整数 pi和ei表示第i个人已经获得的得分和赢第i个人所需要花费的RP(注意在ZGY来之前这n个人的比赛得分不一定满足上述计分规则)

【输出格式】
对于每一组数据,输出一个整数,表示最少需要花费的RP,如果无论如何也无法进入前K名,则输出-1
【样例】
tournament.in

2
3 2
1 1
1 4
2 2
2 1
3 2
4 0
tournament.out

3
-1
【样例解释】
对于ZGY来说要进入前2名只需要赢第1个人和第3个人即可,最终的得分分别为
14.png
可以看到第2和3个人与ZGY同分,因为ZGY战胜了第3个人,被第2个人打败,所以ZGY排在第2名。
【数据规模与约定】
15.png