这道题首先我们可以把这个数组中的每一个元素都变成n的倍数,然后一起消除就可以了
然后我们选择n - 1这个点,把前n - 1个数字都加上(n - 1)* a[i],这样每一位数字都变成了n * a[i],也就是a[i] 的n倍,最后的a[n]因为长度为1,所以也加上(n - 1)* a[n],最后整体减去n * a[i]即可
注意两点
n == 1的时候需要特判
n * a[I]可能会爆int,需要用1ll * 来处理
#define int ll
int a
[MX
];
void solve()
{
int n
;cin
>>n
;
rpp(i
,n
) cin
>>a
[i
];
if(n
==1)
{
cout
<<"1 1\n";
cout
<<a
[1]<<endl
;
cout
<<"1 1\n";
cout
<<a
[1]<<endl
;
cout
<<"1 1\n";
cout
<<-3*a
[1]<<endl
;
}
else
{
cout
<<1<<" "<<n
-1<<endl
;
rpp(i
,n
-1) cout
<<a
[i
]*1ll*(n
-1)<<" ";
cout
<<endl
;
cout
<<n
<<" "<<n
<<endl
;
cout
<<(n
-1)*1ll*a
[n
]<<endl
;
cout
<<1<<" "<<n
<<endl
;
rpp(i
,n
) cout
<<-a
[i
]*1ll*n
<<" ";
cout
<<endl
;
}
}