几何级数表示等比数列的前n项和,又称为等比级数。
晫晫非常喜欢几何级数,但他只喜欢长度为三的级数。他还有一个最喜欢的整数k和一个由n 个整数组成的序列a 。
他想知道从a 中可以选出多少个长度为3的子序列,使它们组成一个公比为k的等比级数。 长度为三的子序列是三个这样的索引 i1,i2,i3, 的组合,即1≤ 1≤i1<i2<i3≤n。
也就是说,长度为 3 的子序列是这样的三个元素的组,它们在序列中不一定连续,但它们的索引严格递增。公比为k的几何级数是b·k0,b·k1,...,b·kr-1. 形式的数列。
请帮助晫晫编程做到这一点。
输入的第一行包含两个整数n和k ( 1≤ n , k ≤2·105 ),显示波利卡普的序列有多少个数以及他最喜欢的数。第二行包含n 个整数a 1 , a 2 ,..., a n ( -10^9 ≤ a i ≤10^9 ) − 序列的元素。
输出一个数字 − 选择长度为 3 的子序列的方式的数量,这样它就形成了一个公比为k的几何级数。
input
5 2
1 1 2 2 4
output
4
input
3 1
1 1 1
output
1
input
10 3
1 2 6 2 3 6 9 18 3 9
output
6
注意
在第一个样本检验中,答案是四个,因为可以选择两个 1 中的任何一个作为第一个元素,第二个元素可以是 2 中的任何一个,子序列的第三个元素必须等于 4。
10 3
1 2 6 2 3 6 9 18 3 9
6