题目链接
思路:
如果n为1直接输出两个不改变和一个变为0即可,如果n大于1那么第一次操作就将1到n-1同时加上a[i]*(n-1)将他变成n的倍数最后再用第三次操作将所有的n个数组变成0即可。
代码:
#include<bits/stdc++.h>
#define int long long
#define IOS ios::sync_with_stdio(false);cin.tie(0);cout.tie(0);
const int N=1e5+9;
const int M=1e4+5;
const double eps=1e-8;
const int mod=1e9+7;
const int inf=0x7fffffff;
const double pi=3.1415926;
using namespace std;
int a[N];
signed main()
{
IOS;
int n,m=1;
cin>>n;
for(int i=1;i<=n;i++)
cin>>a[i];
if(n==1)
{
cout<<1<<' '<<1<<endl;
cout<<1<<endl;
cout<<1<<' '<<1<<endl;
cout<<1<<endl;
cout<<1<<' '<<1<<endl;
cout<<-1*(a[1]+2)<<endl;
return 0;
}
cout<<1<<' '<<n-1<<endl;
for(int i=1;i<=n-1;i++)
{
int m=a[i]%n;
cout<<(n-1)*(m+n)<<' ';
a[i]+=(n-1)*(m+n);
}
cout<<endl;
cout<<n<<' '<<n<<endl;
cout<<(-1LL*a[n]%n)<<endl;
a[n]+=(-1LL*a[n]%n);
cout<<1<<' '<<n<<endl;
for(int i=1;i<=n;i++)
{
cout<<-1LL*a[i]<<' ';
}
cout<<endl;
}