#HX3721. map容器题三:等比数列

提交7 通过2
通过率28.6%
时间限制1000ms
内存限制128MiB

题目描述

题目描述

Polycarp 非常喜欢等比数列,尤其喜欢长度为 33 的等比数列。

他想知道对于一个给定长度 nn 的数列 aa 和公比 qqaa 中有多少个长度为 33 的子序列是以 qq 为公比的等比数列。

ai,aj,aka_i,a_j,a_k 是一个公比为 qq 的等比数列是指 ak=q×aja_k=q\times a_jaj=q×aia_j=q\times a_i

你要找出使得 ai,aj,aka_i,a_j,a_k 是一个公比为 qq 的等比数列的三元组 (i,j,k)(i,j,k) 的个数,且要保证 1i<j<kn1\le i<j<k\le n

输入描述

第一行两个整数 nn1n2×1051\le n\le 2\times10^5)和 qq1×103q1×103-1\times10^3\le q\le 1\times10^3q0q\ne 0)。

第二行 nn 个整数表示 aia_i109ai109-10^9\le a_i\le 10^9ai0a_i\ne 0),aia_i 表示给定数列的第 ii 项。

输出描述

输出一个整数,表示 aa 中有多少个不同的以 qq 为公比,长度为 33 的子序列。

样例 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}\{a_1,a_2,a_3\}{a1,a2,a5}\{a_1,a_2,a_5\}{a1,a4,a5}\{a_1,a_4,a_5\}

样例 #2:{a1,a2,a3}\{a_1,a_2,a_3\}

样例 #3:{a1,a5,a7}\{a_1,a_5,a_7\}{a1,a5,a10}\{a_1,a_5,a_{10}\}{a1,a9,a10}\{a_1,a_9,a_{10}\}{a2,a3,a8}\{a_2,a_3,a_8\}{a2,a6,a8}\{a_2,a_6,a_8\}{a4,a6,a8}\{a_4,a_6,a_8\}

数据范围

1n2×1051\le n\le 2\times10^5103q103-10^3\le q\le 10^3q0q\ne 0

109ai109-10^9\le a_i\le 10^9ai0a_i\ne 0

录入校勘:原图“输入描述”里的非零符号显示不完整;以上按原图底部“数据范围”中明确的 q0q\ne0ai0a_i\ne0 录入。