问题 AW: 几何级数

内存限制:256 MB 时间限制:1 S
题面:传统 评测方式:文本比较 上传者:
提交:35 通过:17

题目描述

  几何级数表示等比数列的前n项和,又称为等比级数。



     晫晫非常喜欢几何级数,但他只喜欢长度为三的级数。他还有一个最喜欢的整数k和一个由n 个整数组成的序列a 。

他想知道从a 中可以选出多少个长度为3的子序列,使它们组成一个公比为k的等比级数。 长度为三的子序列是三个这样的索引 i1,i2,i3的组合,即1≤ 1≤i1<i2<i3n

也就是说,长度为 3 的子序列是这样的三个元素的组,它们在序列中不一定连续,但它们的索引严格递增。公比为k的几何级数是b·k0,b·k1,...,b·kr-1形式的数列。

请帮助晫晫编程做到这一点。

输入格式

输入的第一行包含两个整数nk ( 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