PID262 / 游戏排行榜
题目描述

许多电脑游戏都一个分数排行榜,上面的分数是以非递增顺序排列的。在这样的排行榜上,一个分数的名次就是它在一个有序列表中的位置。如果出现同分,则它们的名次就是它们在这个有序列表中排在最前的那个分数的位置。如果有下列一个排行榜:

100

90

90

80

则它们的名次就是

1

2

2

4

假设排行榜的大小为p(即如果分数的名次在大于p,则不能上榜。),现在有一个新的分数n,它能进入排行榜的条件是它进去之后,它在新的排行榜的位置小于等于p。但有一个例外,如果n与排行榜的最后一个分数n0相等,并且n0已经排在排行榜上的第p位,则n不能进入排行榜。

现在给你一个排行榜,大小为p(排行榜不一定排满),和一个新的分数n,请你写一个程序去确定新分数进入排行榜后的名次。

输入格式

输入共s+1行。

第1行,3个整数,以空格隔开, p,s,n。p为排行榜的大小,s为排行榜上已有分数的个数,n为新分数。(10<=p<=50,0<=s<=p,0<=n<= 2000000000)

第s+1行,每行为一个整数si,第i+1行为排行榜上第i位的分数。(0<=si<=2000000000)

输出格式

输出共1行,1个整数,为新分数n在进入排行榜后的名次,如果n不能进入排行榜就输出-1。

样例输入
样例输出
提交题目 Error [ 更改语言 ] Language
C C++ Pascal Python2
相关讨论
查看更多讨论
发布新讨论 讨论