题意:给你n个正整数a1...an,一次操作是选择任意两个数ai,aj,将它们都替换成gcd(ai,aj)。让你在5n步内将所有数变为1。或者输出不可能。

如果所有数的gcd不为1,显然不可能。

否则从a1开始,一路和下一个数取上gcd,一定能在某个时刻,让a1这个数变成1。

然后就好办了,再让a2...an分别与a1取上gcd,就全变成1了。

不超过2n步。

#include<cstdio>
#include<algorithm>
using namespace std;
int n,a[100005];
int main(){
//freopen("g.in","r",stdin);
int zu=0;
while(scanf("%d",&n)!=EOF){
printf("Case %d: ",++zu);
for(int i=1;i<=n;++i){
scanf("%d",&a[i]);
}
int now=a[1],ans;
for(int i=2;i<=n;++i){
now=__gcd(now,a[i]);
if(now==1){
ans=i-1;
break;
}
}
if(now!=1){
puts("-1\n");
continue;
}
printf("%d\n",ans+n-1);
for(int i=2;i<=ans+1;++i){
printf("%d %d\n",1,i);
}
for(int i=2;i<=n;++i){
printf("1 %d\n",i);
}
puts("");
}
return 0;
}

最新文章

  1. Map集合
  2. 关于安装Apache之后,解析PHP的配置
  3. HTML基础知识
  4. OpenCV2:Mat
  5. 二叉树的层序遍历 BFS
  6. fetch 资源请求
  7. Careercup - Microsoft面试题 - 5120588943196160
  8. Core 2.0 的dll实时更新、https、依赖包变更问题及解决
  9. 【bzoj3809】Gty的二逼妹子序列
  10. mysql基础练习题
  11. JsonRequestBehavior不存在问题,JsonRequestBehavior属于哪个dll
  12. Btrace官方教程-中文版
  13. java 解析域名得到host
  14. *(volatile int *)解读
  15. BZOJ1218 [HNOI2003]激光炸弹 二维前缀和
  16. Lintcode214-Max of Array-Naive
  17. JVM(一)
  18. solr 5.0.0 bin/start脚本详细解析
  19. linux_配置三台虚拟机免密登录
  20. supervisor错误记录

热门文章

  1. windebug常用命令
  2. Spring4笔记12--SSH整合3--Spring与Struts2整合
  3. Shell-help格式详解
  4. 【驱动】USB驱动&#183;入门【转】
  5. MySQL参数设置
  6. C# 应用程序配置文件App.Config和web.config
  7. docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)
  8. 创建自己的maven模板
  9. virtualenv,virtualenvwrapper安装及使用
  10. Java OOM学习