该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
    
                    题目描述
在一条街道上,有n座塔,从1到n连续编号。每座塔都有自己的高度hi,以米为单位。
对于编号为l,l+1,…,r的连续塔子序列,如果塔i(满足l≤i≤r)满足hi=gcd(hl,hl+1,…,hr),则称塔i在该子序列中是_好_的。其中,gcd(a1,a2,…,ak)表示正整数集合a1,a2,…,ak的最大公约数。
你的任务是确定,对于每个i=1,2,…,n,包含塔i的最大连续子序列的长度(在该子序列中塔i是_好_的)。连续子序列的长度定义为该子序列中塔的数量。
输入格式
第一行包含一个整数n(1≤n≤106),表示塔的数量。
第二行包含n个整数,依次为h1,h2,…,hn(1≤hi≤106)。
输出格式
输出在一行中,按顺序输出每个i=1,2,…,n的答案。
数据范围
对于100%的数据,保证1≤n,hi≤106。
| 子任务 | 
分数 | 
约束条件 | 
| 1 | 
7 | 
n≤100 | 
| 2 | 
11 | 
n≤5000 | 
| 3 | 
17 | 
n≤50000 | 
| 4 | 
29 | 
hi≤100 | 
| 5 | 
26 | 
无额外约束 | 
样例数据
6
3 6 6 6 1 3
4 3 3 3 6 1
说明
- 塔1在子序列[1,4](长度为4)中是好的。
 
- 塔2,3,4在各自长度为3的子序列(如[2,4])中是好的。
 
- 塔5在任意包含它的子序列中都是好的,因此整个序列(长度为6)满足条件。
 
- 塔6仅能在子序列[6,6](长度为1)中满足条件。
 
5
10 2 10 15 5
1 3 1 1 3