CF1547F.Array Stabilization (GCD version)

普及/提高-

通过率:0%

AC君温馨提醒

该题目为【codeforces】题库的题目,您提交的代码将被提交至codeforces进行远程评测,并由ACGO抓取测评结果后进行展示。由于远程测评的测评机由其他平台提供,我们无法保证该服务的稳定性,若提交后无反应,请等待一段时间后再进行重试。

题目描述

You are given an array of positive integers a=[a0,a1,,an1]a = [a_0, a_1, \dots, a_{n - 1}] ( n2n \ge 2 ).

In one step, the array aa is replaced with another array of length nn , in which each element is the greatest common divisor (GCD) of two neighboring elements (the element itself and its right neighbor; consider that the right neighbor of the (n1)(n - 1) -th element is the 00 -th element).

Formally speaking, a new array b=[b0,b1,,bn1]b = [b_0, b_1, \dots, b_{n - 1}] is being built from array a=[a0,a1,,an1]a = [a_0, a_1, \dots, a_{n - 1}] such that bib_i =gcd(ai,a(i+1)modn)= \gcd(a_i, a_{(i + 1) \mod n}) , where gcd(x,y)\gcd(x, y) is the greatest common divisor of xx and yy , and xmodyx \mod y is the remainder of xx dividing by yy . In one step the array bb is built and then the array aa is replaced with bb (that is, the assignment aa := bb is taking place).

For example, if a=[16,24,10,5]a = [16, 24, 10, 5] then b=[gcd(16,24)b = [\gcd(16, 24) , gcd(24,10)\gcd(24, 10) , gcd(10,5)\gcd(10, 5) , gcd(5,16)]\gcd(5, 16)] =[8,2,5,1]= [8, 2, 5, 1] . Thus, after one step the array a=[16,24,10,5]a = [16, 24, 10, 5] will be equal to [8,2,5,1][8, 2, 5, 1] .

For a given array aa , find the minimum number of steps after which all values aia_i become equal (that is, a0=a1==an1a_0 = a_1 = \dots = a_{n - 1} ). If the original array aa consists of identical elements then consider the number of steps is equal to 00 .

输入格式

The first line contains an integer tt ( 1t1041 \le t \le 10^4 ). Then tt test cases follow.

Each test case contains two lines. The first line contains an integer nn ( 2n21052 \le n \le 2 \cdot 10^5 ) — length of the sequence aa . The second line contains nn integers a0,a1,,an1a_0, a_1, \dots, a_{n - 1} ( 1ai1061 \le a_i \le 10^6 ).

It is guaranteed that the sum of nn over all test cases doesn't exceed 21052 \cdot 10^5 .

输出格式

Print tt numbers — answers for each test case.

输入输出样例

  • 输入#1

    5
    4
    16 24 10 5
    4
    42 42 42 42
    3
    4 6 4
    5
    1 2 3 4 5
    6
    9 9 27 9 9 63

    输出#1

    3
    0
    2
    1
    1
首页