NC229976. 小红的数组
描述
输入描述
第一行输入两个正整数 和 ,用空格隔开。第二行输入 个用空格隔开的正整数 ,用来表示数组。数据范围:
输出描述
输出三个整数,用空格隔开。分别代表取两个数乘积大于 的方案数、等于 的方案数、小于 的方案数。
示例1
输入:
4 7 1 3 4 2
输出:
2 0 4
说明:
大于7的取数方案:[3,4]和[4,2]。小于7的取数方案:[1,3]、[1,4]、[1,2]、[3,2]示例2
输入:
5 9 3 3 3 3 3
输出:
0 10 0
Python3 解法, 执行用时: 977ms, 内存消耗: 37888K, 提交时间: 2022-06-21 15:14:34
from bisect import * n, k = map(int, input().split()) a = sorted(list(map(int, input().split()))) res = [0, 0, 0] for i in range(n-1): l = bisect_left(a, k / a[i], i + 1, n) r = bisect_right(a, k / a[i], i + 1, n) res[0] += n - r res[1] += r - l res[2] += l - i - 1 print(*res)