题目描述
题意是让我们用最多n-1个操作数,来构造一个相邻互质的数组
由题意可知,最小的位置上的数绝对是构造完的数列中最小的那
个数,我们可以用这个数直接操作n-1次,使相邻位差为1
代码
#include<iostream>
#include<algorithm>
#include<cstring>
using namespace std;
const int maxn=2e5+5;
int a[maxn];
int main(){
int t;
cin>>t;
while(t--)
{
int n;
cin>>n;
int minn=0x3f3f3f3f,k=0;
for(int i=1;i<=n;i++)
{
cin>>a[i];
if(a[i]<minn)
{
k=i;
minn=a[i];
}
}
cout<<n-1<<endl;
for(int i=k+1,p=1;i<=n;i++,p++)
{
cout<<k<<' '<<i<<' '<<minn<<' '<<minn+p<<endl;
}
for(int i=k-1,p=1;i>=1;i--,p++)
{
cout<<k<<' '<<i<<' '<<minn<<' '<<minn+p<<endl;
}
}
}