题目描述
Polycarp 非常喜欢等比数列,尤其喜欢长度为 3 的等比数列。
他想知道对于一个给定长度 n 的数列 a 和公比 q,a 中有多少个长度为 3 的子序列是以 q 为公比的等比数列。
ai,aj,ak 是一个公比为 q 的等比数列是指 ak=q×aj 且 aj=q×ai。
你要找出使得 ai,aj,ak 是一个公比为 q 的等比数列的三元组 (i,j,k) 的个数,且要保证 1≤i<j<k≤n。
输入描述
第一行两个整数 n(1≤n≤2×105)和 q(−1×103≤q≤1×103,q=0)。
第二行 n 个整数表示 ai(−109≤ai≤109,ai=0),ai 表示给定数列的第 i 项。
输出描述
输出一个整数,表示 a 中有多少个不同的以 q 为公比,长度为 3 的子序列。
样例 1
5 2
1 2 4 2 4
3
样例 2
3 1
1 1 1
1
样例 3
10 3
1 2 6 2 3 6 9 18 3 9
6
说明提示
样例 #1:{a1,a2,a3},{a1,a2,a5},{a1,a4,a5}。
样例 #2:{a1,a2,a3}。
样例 #3:{a1,a5,a7},{a1,a5,a10},{a1,a9,a10},{a2,a3,a8},{a2,a6,a8},{a4,a6,a8}。
数据范围
1≤n≤2×105,−103≤q≤103,q=0。
−109≤ai≤109,ai=0。
录入校勘:原图“输入描述”里的非零符号显示不完整;以上按原图底部“数据范围”中明确的 q=0、ai=0 录入。