CF818E Card Game Again

题目描述

Vova 再次尝试玩一款电脑卡牌游戏。 这款游戏的组牌规则很简单。Vova 拿到了一副已有的 $n$ 张牌的牌堆,以及一个魔法数字 $k$。牌堆中牌的顺序是固定的。每张牌上都写有一个数字,第 $i$ 张牌上写有数字 $a_i$。 拿到牌堆和魔法数字后,Vova 可以从牌堆顶部移除 $x$ 张牌($x$ 可以为 $0$),从牌堆底部移除 $y$ 张牌($y$ 可以为 $0$),剩下的牌就是他的新牌堆(但是 Vova 至少要保留一张牌)。所以,Vova 的新牌堆实际上包含原始牌堆中的第 $x+1$ 张、第 $x+2$ 张、……、第 $n-y-1$ 张、第 $n-y$ 张牌。 当且仅当新牌堆中所有牌上的数字的乘积可以被 $k$ 整除时,这个新牌堆才被认为是合法的。因此,Vova 收到了一副牌(可能不一定合法)和一个数字 $k$,他现在想知道,有多少种方式选择 $x$ 和 $y$,使得他移除 $x$ 张顶牌和 $y$ 张底牌后得到的牌堆是合法的?

输入格式

第一行包含两个整数 $n$ 和 $k$($1\leq n\leq 100000$,$1\leq k\leq 10^{9}$)。 第二行包含 $n$ 个整数 $a_1$,$a_2$,…,$a_n$($1\leq a_i\leq 10^{9}$),表示每张牌上写的数字。

输出格式

输出满足条件的 $(x, y)$ 方案数。

说明/提示

在第一个样例中,满足条件的 $(x, y)$ 取值为: 1. $x=0, y=0$; 2. $x=1, y=0$; 3. $x=2, y=0$; 4. $x=0, y=1$。 由 ChatGPT 5 翻译