测评会员优惠活动进行中 · 开通 VIP,有效期内测评不限次 VIP 优惠中 · 测评不限次 立即查看

A25209. 根据比较关系找出重量第 k 大的小球编号。输入描述:第 1 行:整数 n(小球数量)。第 2 到 n 行:每行表示一个小球的比较关系(如 "<<>")。最后一行:整数 k。输出描述:第 k 大的小球编号。样例输入:4 < < > > > > 3样例输出:1

填空题 容易

题目描述

根据比较关系找出重量第 k 大的小球编号。

输入描述:

第 1 行:整数 n(小球数量)。

第 2 到 n 行:每行表示一个小球的比较关系(如 "<<>")。

最后一行:整数 k。

输出描述:

第 k 大的小球编号。

样例输入:

4
< < >
> >
>
3

样例输出:

1

参考答案

n = int(input().strip()) relations = [] for _ in range(n - 1): parts = input().strip().split() relations.append(parts) k = int(input().strip()) # 统计每个小球被“大于”的次数(越大被“>”越多) greater_count = [0] * n for i in range(n - 1): for j in range(i + 1, n): if relations[i][j - i - 1] == '>': greater_count[i] += 1 else: greater_count[j] += 1 # 按被“>”次数排序(次数越多,重量越大) sorted_ids = sorted(range(n), key=lambda x: -greater_count[x]) print(sorted_ids[k - 1] + 1) # 编号从1开始

答案解析

统计比较关系:

对每个小球,统计它被其他小球“大于”的次数(> 表示当前小球比对方大)。

排序:

被“大于”次数越多的小球,重量越大。

输出结果: 按排序取第 k 大的编号。

上一题 下一题