题目描述
有 n 张扑克,第 i 张扑克上写有一个正整数 ai。
现在要把扑克划分成若干个合法的连续子段,其中,一个连续子段 [l,r] “合法”当且仅当这个子段同时满足两个条件:
- al<ar
- gcd(al,ar)>1
请问最多能划分多少段。如果没有合法的划分方案,输出 −1 即可。
如果您不知道 gcd 是什么意思,请看“提示”部分。
输入格式
第一行一个整数 n。
第二行 n 个整数表示序列 a。
输出格式
一个整数,如题目描述所示。
提示
数据范围
本题采用捆绑测试。
对于 100% 的数据,2≤n≤105,1≤ai≤109。
Subtask |
n≤ |
ai≤ |
特殊性质 |
分值 |
1 |
5 |
109 |
无 |
5 |
2 |
3×103 |
15 |
3 |
2×104 |
106 |
20 |
4 |
2×104 |
109 |
10 |
5 |
105 |
数据随机 |
6 |
无 |
40 |
样例解释
对于样例 1,有且仅有一种划分方案 {2,1,8},{3,9}。
对于样例 2,无合法的划分方案。
提示
对于两个正整数 a,b,gcd(a,b) 为它们的最大公因数,即满足既是 a 的因数又是 b 的因数的数中最大的数。