题目背景
翻译自 ROIR 2016 D2T2。
题目描述
Andrey 是超级跳棋比赛的裁判。每场比赛中有三名玩家参与。每个玩家在比赛过程中会得到一定的正整数分数。如果在比赛结束时,第一个玩家得到了 a 分,第二个玩家得到了 b 分,第三个玩家得到了 c 分,那么我们说比赛以得分 a:b:c 结束。
Andrey 知道超级跳棋的规则要求,比赛结果中任何两个玩家的得分之比最多为 k。比赛结束后,Andrey 将显示比赛结果,将三张写有玩家得分的卡片放到专门的显示屏上。Andrey 有 n 张这样的卡片,上面写的数字分别是 x1,x2,…,xn。
为了测试自己为比赛做好了多少准备,Andrey 希望知道,使用他拥有的 n 张卡片,他能在显示屏上显示多少种不同的得分组合。
输入格式
第一行输入两个整数 n,k(3≤n≤100000,1≤k≤109)。
第二行输入 n 个整数 x1,x2,…,xn (1≤xi≤109)。
输出格式
输出一个整数,表示 Andrey 可以在显示屏上显示的不同得分组合的数量。
提示
样例解释
在样例中,Andrey 可以显示的得分组合有:1:1:2,1:2:1,2:1:1,1:2:2,2:1:2,2:2:1,2:2:3,2:3:2,3:2:2。
其它用现有卡片组成的三元组不满足条件,因为这样会出现两个玩家的得分之比超过了 k=2 的情况。
数据范围
子任务 |
是否捆绑 |
分值 |
3≤n≤ |
1≤k≤ |
1≤xi≤ |
其它特殊性质 |
1 |
是 |
15 |
100000 |
1 |
100000 |
|
2 |
23 |
100 |
3 |
30 |
100000 |
109 |
所有 xi 互不相同 |
4 |
32 |
|