#P8809. [蓝桥杯 2022 国 C] 近似 GCD

[蓝桥杯 2022 国 C] 近似 GCD

题目描述

小蓝有一个长度为 nn 的数组 A=(a1,a2,,an)A = (a_1,a_2,\cdots,a_n),数组的子数组被定义为从原数组中选出连续的一个或多个元素组成的数组。数组的最大公约数指的是数组中所有元素的最大公约数。如果最多更改数组中的一个元素之后,数组的最大公约数为 gg,那么称 gg 为这个数组的近似 GCD。一个数组的近似 GCD 可能有多种取值。

具体的,判断 gg 是否为一个子数组的近似 GCD 如下:

  1. 如果这个子数组的最大公约数就是 gg,那么说明 gg 是其近似 GCD。
  2. 在修改这个子数组中的一个元素之后(可以改成想要的任何值),子数组的最大公约数为 gg,那么说明 gg 是这个子数组的近似 GCD。

小蓝想知道,数组 AA 有多少个长度大于等于 22 的子数组满足近似 GCD 的值为 gg

输入格式

输入的第一行包含两个整数 n,gn,g,用一个空格分隔,分别表示数组 AA 的长度和 gg 的值。

第二行包含 nn 个整数 a1,a2,,ana_1,a_2,\cdots,a_n,相邻两个整数之间用一个空格分隔。

输出格式

输出一行包含一个整数表示数组 AA 有多少个长度大于等于 22 的子数组的近似 GCD 的值为 gg

5 3
1 3 6 4 10
5

提示

【样例说明】

满足条件的子数组有 55 个 :

[1,3][1,3]:将 11 修改为 33 后,这个子数组的最大公约数为 33,满足条件。

[1,3,6][1,3,6]:将 11 修改为 33 后,这个子数组的最大公约数为 33,满足条件。

[3,6][3,6]:这个子数组的最大公约数就是 33,满足条件。

[3,6,4][3,6,4]:将 44 修改为 33 后,这个子数组的最大公约数为 33,满足条件。

[6,4][6,4]:将 44 修改为 33 后,这个子数组的最大公约数为 33,满足条件。

【评测用例规模与约定】

对于 20%20\% 的评测用例,2n1002\le n\le100

对于 40%40\% 的评测用例,2n10002\le n\le1000

对于所有评测用例,2n1052\le n\le10^51g,ai1091\le g,a_i \le10^9

蓝桥杯 2022 国赛 C 组 F 题。