博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Codeforces Round #446 (Div. 2) C. Pride【】
阅读量:6789 次
发布时间:2019-06-26

本文共 1202 字,大约阅读时间需要 4 分钟。

C. Pride
time limit per test
2 seconds
memory limit per test
256 megabytes
input
standard input
output
standard output

You have an array a with length n, you can perform operations. Each operation is like this: choose two adjacentelements from a, say x and y, and replace one of them with gcd(x, y), where gcd denotes the .

What is the minimum number of operations you need to make all of the elements equal to 1?

Input

The first line of the input contains one integer n (1 ≤ n ≤ 2000) — the number of elements in the array.

The second line contains n space separated integers a1, a2, ..., an (1 ≤ ai ≤ 109) — the elements of the array.

Output

Print -1, if it is impossible to turn all numbers to 1. Otherwise, print the minimum number of operations needed to make all numbers equal to 1.

Examples
input
5 2 2 3 4 6
output
5
input
4 2 4 6 8
output
-1
input
3 2 6 9
output
4
Note

In the first sample you can turn all numbers to 1 using the following 5 moves:

  • [2, 2, 3, 4, 6].
  • [2, 1, 3, 4, 6]
  • [2, 1, 3, 1, 6]
  • [2, 1, 1, 1, 6]
  • [1, 1, 1, 1, 6]
  • [1, 1, 1, 1, 1]

We can prove that in this case it is not possible to make all numbers one using less than 5 moves

转载于:https://www.cnblogs.com/Roni-i/p/7892741.html

你可能感兴趣的文章
directx9.0c和directxv9.0有什么差别,DirectX10.0呢
查看>>
chromium浏览器开发系列第二篇:如何编译最新chromium源码
查看>>
Root Guard - CCIE之Switching篇
查看>>
H3C路由器之NAT+端口映射实战
查看>>
Image Map的制作
查看>>
solaris 11 中SAP的启动和停止
查看>>
瀑布流布局浅析+常用插件介绍(转&改编)
查看>>
不能输入全角字符 全角转换为半角 去掉全角下的所有空格
查看>>
centOS 6.2 升级 kernel 3.2.9
查看>>
jenkins构建shell或者python脚本中含有远程登录复制会报错解决办法
查看>>
python脚本 字符串变量 强制 不转义 win地址 不转义输出
查看>>
IT自学要走远,更要走深
查看>>
文本处理命令介绍
查看>>
Java中常用的几种排序算法
查看>>
分支3-CentOS6.5下 子域授权、请求转发 的教程
查看>>
Javascript 拖拽 放大镜
查看>>
利用PowerShell创建事件日志
查看>>
python光荣之路测试开发班list学习笔记
查看>>
【c#】Excel COM组件在.net程序中的使用
查看>>
python的一些细节(持续更新中)
查看>>