tranthienminh135
Rating
-
Bài tập
0
Điểm
0
Rating #
-
Điểm #
28099
Giới thiệu
n, q = map(int, input().split())
a = [0] + list(map(int, input().split()))
f = [0] * (n + 1)
dp = [[0] * 50 for _ in range(n + 1)]
mod = 10**9 + 7
for i in range(1, n + 1):
dp[i][1] = 1
for k in range(2, 33):
for i in range(1, n + 1):
for j in range(1, i):
if a[j] * q == a[i]:
dp[i][k] = (dp[i][k] + dp[j][k - 1]) % mod
for k in range(2, n + 1):
for i in range(1, n + 1):
f[k] = (f[k] + dp[i][k]) % mod
for i in range(2, n + 1):
if i <= 30:
print(f[i], end=" ")
else:
print(0, end=" ")