Problem G: 2018NHNOIP模拟第二题 光芒(2.2)X

Problem G: 2018NHNOIP模拟第二题 光芒(2.2)X

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 512 MB

Description

小 X 看到了小 L 正在帮助你前往巨龙所在之处,于是过来帮忙。可是当他知道小 L干了什么时,被小 L 的过于愚蠢惊到了。此时他们恰巧正走在悬崖边缘,于是在震惊之中他一个不小心坠入了深渊里。可怜的小 L 手太短了,没能抓住小 X。
深渊中有一排一共 n 盏灯,灯的下标为从 1 到 n 的正整数,每个灯都有一个对应的开关。一开始给定这 n 个灯的初始状态,每个灯有两个状态亮和灭,我们用 1 来表示这个灯是暗的,用 0 表示这个灯是亮的,游戏的目标是使所有灯都亮着。但是当操作第 i 个开关时,所有编号为 i 的约数(包括 1 和 i )的灯的状态都会被改变,即从亮变成灭,或者是从灭变成亮。
小 L 担心小 X 怕黑,于是她希望你能用最小的步数使所有灯都亮着【虽然这好像并不能把小 X 救上来??!】。请你告诉小 L 最小步数是多少。如果没有可行方案的话,输出-1 。
【简要题面】
给出一排n盏灯的初始状态,用1来表示这个灯是暗的,用0表示这个灯是亮的。
每次可以操作一个开关,当操作第i个开关时,所有编号为i的约数(包括1和i)的灯的状态都会被改变。
问最少多少次操作能使所有灯都亮着。如果没有可行方案的话,输出 -1。

Input

第一行一个正整数 n 表示灯的个数
接下来一行 n 个整数,表示灯的初始状

Output

一行一个整数表示最少需要多少步使得所有灯都亮着,如果没有可行方案的话,输出-1

Sample Input Copy

5
1 1 0 1 1

Sample Output Copy

3

HINT

【样例 1 解释】
按动 1 、 4 、 5 号开关
【数据范围】
对于 10%的测试点, n<=5 ;
对于另外 20%的测试点, n<=10 ;
对于另外 20%的测试点, n<=100 ;
对于另外 30%的测试点, n<=1000 ;
对于 100% 的测试点, 1<=n<=100000 ;