• [编程题]晋级人数


    小团是某综艺节目的策划,他为某个游戏环节设计了一种晋级规则,已知在这个游戏环节中每个人最后都会得到一个分数score_i,显而易见的是,游戏很有可能出现同分的情况,小团计划该环节晋级人数为x人,则将所有人的分数从高到低排序,所有分数大于等于第x个人的分数且得分不为0的人都可以晋级。

    请你求出本环节的实际晋级人数。显然这个数字可能是0,如果所有人的得分都是0,则没有人满足晋级条件。

    输入描述:
    输入第一行包含两个正整数n和x,分别表示参加本环节的人数,和小团指定的x。

    输入第二行包含n个整数,每个整数表示一位选手的得分。

    输出描述:
    输出仅包含一个整数,表示实际晋级人数。

    输入例子1:
    5 4
    0 0 2 3 4

    输出例子1:
    3

    分析:如果在第x人之前存在分数相同的情况,则晋级人数可能会大于x。

    result_ls = []
    while True:
        try:
            n, x = map(int, input().split())
            n_ls = list(map(int, input().split()))
            n_ls.sort(reverse=True)
            #print(n_ls)
            y = n - 1
            num = n_ls[x-1]
            flag = False
            while y > 0:
                if n_ls[y] == 0:
                    y -= 1
                else:
                    result_ls.append(y + 1)
                    flag = True
                    break
    
            if not flag:
                result_ls.append(0)
    
        except Exception as e:
            #print(e)
            break
    for _ in result_ls:
        print(_)
    
    
  • 相关阅读:
    【Foreign】数数 [打表][DP]
    【Foreign】猜测 [费用流]
    【Foreign】最大割 [线性基]
    【Foreign】开锁 [概率DP]
    【Foreign】染色 [LCT][线段树]
    【Foreign】阅读 [线段树][DP]
    【Foreign】字符串匹配 [KMP]
    【Foreign】冒泡排序 [暴力]
    【BZOJ1976】能量魔方 [最小割]
    【Foreign】树 [prufer编码][DP]
  • 原文地址:https://www.cnblogs.com/chenjo/p/14706498.html
Copyright © 2020-2023  润新知