首页 > 试题广场 >

孙悟空的徒弟

[编程题]孙悟空的徒弟
  • 热度指数:3709 时间限制:C/C++ 3秒,其他语言6秒 空间限制:C/C++ 128M,其他语言256M
  • 算法知识视频讲解

打败魔人布欧以后,孙悟空收了n个徒弟,每个徒弟战斗力各不相同。他教导所有的徒弟和体术,合体后战斗力为原战斗力相乘。任何两个徒弟都可以合体,所以一共有n*(n-1)/2种合体徒弟。有一天,他想考验一下孙悟天战斗力如何,希望在所有n*(n-1)/2种合体徒弟中选择战斗力第k高的,与孙悟天对战。可是孙悟空徒弟太多了,他已然懵逼,于是找到了你,请你帮他找到对的人。


输入描述:
第一行两个int。徒弟数量:n <= 1*10^6;战斗力排名:k <= n*(n-1)/2
第二行空格分隔n个int,表示每个徒弟的战斗力。


输出描述:
战斗力排名k的合体徒弟战斗力。
示例1

输入

5 2
1 3 4 5 9

输出

36
自暴自弃了...最短的65%...
n,k = map(int,input().split())
t = list(map(int,input().split()))
print(sorted([t[i]*t[j] for i in range(n-1) for j in range(i+1,n)])[-k])


发表于 2019-09-15 01:32:11 回复(0)
nk = list(map(int,input().split()))
n = nk[0]
k = nk[1]
fight = sorted(list(map(int,input().split())))
res = []
for i in range(0, n):
    for j in range(1, i):
        num = fight[i] * fight[j]
        res.append(num)
res = sorted(res, reverse = True)
print(res[k - 1])

请检查是否存在语法错误或者数组越界非法访问等情况 case通过率为55.00%
发表于 2019-08-18 22:22:42 回复(2)

热门推荐

通过挑战的用户

查看代码