题目背景
众所周知,椰子是一种椰子,但这和题目好像没什么关系。
题目描述
给出一个长度为 n 的序列 a,我们保证 1∼n 中的每一个数都恰好在 a 中出现了一次,对于每一个 1≤i≤n,求出在序列中将值为 i 的数的值修改成 1 后,序列有多少种不同的区间 gcd 的值。
严格来说,记将值为 x 的数修改为 1 后的序列为 Ax。集合 $S_x=\{\gcd\limits_{i=l}^r(A^x_i)|1\le l\le r\le n\}$,求出所有 ∣Si∣ 的值。
输入格式
第一行一个正整数 n,表示排列的长度。
接下来一行 n 个正整数,表示序列 a。
输出格式
一行一共 n 个整数,第 i 个数表示在把值为 i 的数改成 1 后,序列有多少种不同的区间 gcd 的值。
3
3 1 2
3 2 2
6
3 6 4 1 5 2
6 6 5 5 5 5
提示
样例解释 1
对于将 1 变成 1,有 {1,2,3} 共 3 种不同的区间 gcd 值,分别可以对应区间 [1,3],[3,3],[1,1]。
对于将 2 变成 1,有 {1,3} 共 2 种不同的区间 gcd 值,分别可以对应区间 [2,3],[1,1]。
对于将 3 变成 1,有 {1,2} 共 2 种不同的区间 gcd 值,分别可以对应区间 [1,2],[3,3]。
数据规模与约定
本题采用捆绑测试。
| Subtask | 分数 | 数据范围 | 特殊性质 | 
| 1 | 10 | n≤20 | 无特殊限制 | 
| 2 | 20 | n≤200 | 
| 3 | 30 | n≤2000 | 
| 4 | 20 | 无特殊限制 | A | 
| 5 | 无特殊限制 | 
A:对于所有 1≤i≤n,有 ai=i。
对于所有的数据,2≤n≤5×105,我们保证 1∼n 中的每一个数都恰好在 a 中出现了一次。