小红的数组
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

小红拿到了一个长度为 n 的数组,数组中的元素都是正整数。
小红想让你回答以下三个问题,取两个数乘积大于 k 的方案数、取两个数乘积等于 k 的方案数、取两个数乘积小于 k 的方案数。
注:两个数是不放回且同时取的。例如对于数组[1,2,3,4,5]而言,取[1,2]和[2,1]我们认为是同一种方案。
但是,如果有两个数相等,那么取相等但位置不同的数不认为是同一种取法。例如对于数组[2,2,2,3]而言,有三种方案可以取到[2,2]。

输入描述:

第一行输入两个正整数 nk ,用空格隔开。
第二行输入 n 个用空格隔开的正整数 a_i,用来表示数组。
数据范围:

输出描述:

输出三个整数,用空格隔开。分别代表取两个数乘积大于 k 的方案数、等于 k 的方案数、小于 k 的方案数。
示例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