CF2148G.Farmer John's Last Wish

普及+/提高

通过率:0%

AC君温馨提醒

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

题目描述

Bessie 在地上发现了一个长度为 nn 的数组 aa。在数组旁边似乎还有一张手写的便签,看起来是 Farmer John 写的。便签上写着:

“亲爱的 Bessie,请帮帮我!设 f(a)f(a) 表示在区间 [1,n)[1, n) 内使得 gcd⁡(a1,a2,…,ak)>gcd⁡(a1,a2,…,ak+1)\gcd(a_1, a_2, \ldots, a_k) > \gcd(a_1, a_2, \ldots, a_{k+1}) 的最大的整数 kk,如果不存在这样的 kk,则为 00。”

Bessie 决定帮助 FJ。她定义 g(a)g(a) 表示所有 aa 的重排中 f(a)f(a) 的最大值。

Bessie 不仅打算找到 g(a)g(a),还打算对于 aa 的每个前缀 pp 求出 g(p)g(p) 的值。

输出 nn 个整数,第 ii 个数表示 g([a1,a2,…,ai])g([a_1, a_2, \ldots, a_i])。

输入格式

第一行包含一个整数 tt(1≤t≤1041 \leq t \leq 10^4),表示测试用例组数。

每组测试用例的第一行包含一个整数 nn(1≤n≤2⋅1051 \leq n \leq 2 \cdot 10^5)。

接下来一行包含 nn 个用空格分隔的整数 a1,a2,…,ana_1, a_2, \ldots, a_n(1≤ai≤n1 \leq a_i \leq n)。

保证所有测试用例中 nn 的总和不超过 2⋅1052 \cdot 10^5。

输出格式

对于每个测试用例,在一行内输出 nn 个整数,第 ii 个数应为 g([a1,a2,…,ai])g([a_1, a_2, \ldots, a_i])。

输入输出样例

  • 输入#1

    3
    8
    2 4 3 6 5 7 8 6
    6
    6 6 6 6 6 6
    9
    8 4 2 6 3 9 5 7 8

    输出#1

    0 1 2 3 3 3 4 5 
    0 0 0 0 0 0 
    0 1 2 2 4 4 4 4 5

说明/提示

由 ChatGPT 5 翻译

输入解题思路,AI测评打分。不知道怎么写?

首页