时间:2016-04-09 22:50:56 星期六
题目编号:[2016-04-09][codeforces][660][A][ Co-prime Array]
题目大意:给定一个数列,问至少需要插入多少个1 109中的任一数字,才能使得相邻两个数字是互质的,输出最少次数和最后的数列
分析:直接扫一遍,相邻元素不互质的,中间插个1,
#include<cstdio>#include<vector>using namespace std;const int maxn = 1000 + 10;vector<int> a;int gcd(int a,int b){ return b == 0?a:gcd(b,a%b);}int main(){ int n,tmp; scanf("%d",&n); for(int i = 0 ; i < n ; ++i){ scanf("%d",&tmp); a.emplace_back(tmp); } int cnt = 0; vector<int>::iterator itv; for(itv = a.begin() + 1;itv != a.end();++itv){ if(gcd(*itv,*(itv - 1)) != 1){ itv = a.emplace(itv,1); ++cnt; } } printf("%d\n",cnt); for(itv = a.begin();itv != a.end();++itv){ printf("%d ",*itv); } return 0;}