题目描述
给定一个长度为 n 的数列 a1,a2,…,an,以及一个整数 t。
请你找出数列 a 中存在多少个长度恰好为 3 的子序列,并且这个子序列是一个公比为 t 的等比数列。
换句话说,你需要找到存在多少个三元组 (i,j,k) 满足:
1≤i<j<k≤n 且 ai×t=aj 且 aj×t=ak.
输入格式
第一行,两个整数 n 和 k,以一个空格分隔。
第二行,n 个整数 a1,a2,…,an,相邻整数间以一个空格分隔。
输出格式
输出一个整数,表示数列 a 中存在多少个长度为 3 的子序列是公比为 k 的等比数列。
5 2
1 1 2 2 4
4
3 1
1 1 1
1
10 3
1 2 6 2 3 6 9 18 3 9
6
说明/提示
样例解释
以下都用 (i,j,k) 的格式表示 ai,aj,ak 构成一个满足条件的子序列。
样例1:(1,3,5),(1,4,5),(2,3,5),(2,4,5)
样例2:(1,2,3)
样例3:(1,5,7),(1,5,10),(1,9,10),(2,3,8),(2,6,8),(4,6,8)
数据规模与约定
- 对于 30% 的数据,n,k≤20;ai≤1000;
- 对于 60% 的数据,n,k≤2000;ai≤106;
- 对于 100% 的数据,1≤n,k≤2⋅105;1≤ai≤109。