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 大的编号。
上一题
下一题