Gửi bài giải

Điểm: 0,01 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Tác giả:
Dạng bài

Cho một dãy gồm ~n~ số nguyên dương ~a_1, a_2, a_3, \ldots, a_n~ và một số nguyên dương ~m~. Hãy đếm số bộ ba ~(i, j, k)~ thoả mãn: ~1 \leq i < j < k \leq n~ và dãy ~[a_i, a_j, a_k]~ tạo thành một cấp số nhân công bội ~m~ (hay nói cách khác, ~a_i = b \times m^0, a_j = b \times m^1, a_k = b \times m^2~ với một số nguyên ~b~ nào đó).

Input

  • Dòng đầu tiên chứa số nguyên dương ~n~ và ~m~ (~3 \leq n, m \leq 10^5~).
  • Dòng tiếp theo chứa ~n~ số nguyên dương ~a_1, a_2, a_3, \ldots, a_n~ (~|a_i| \leq 10^9~).

Output

In ra số lượng bộ ba ~(i, j, k)~ thoả mãn.

Subtasks

  • Subtask 1 (~20\%~): ~n \leq 200~.
  • Subtask 2 (~20\%~): ~n \leq 10^3~.
  • Subtask 3 (~60\%~): Không có điều kiện gì thêm.

Sample Test 1

Input:

5 2
1 1 2 2 4

Output:

4

Sample Test 2

Input:

10 3
1 2 6 2 3 6 9 18 3 9

Output:

6