CF1582D
题意简述
给定数列
可以发现当
#include<iostream>
#include<cstdio>
#include<cstring>
#include<algorithm>
using namespace std;
const int N = 2e5 + 10;
inline int read(){
int x=0,f=1;
char ch=getchar();
for(;!isdigit(ch);ch=getchar()) if(ch=='-') f=-1;
for(; isdigit(ch);ch=getchar()) x=(x<<3)+(x<<1)+(ch^48);
return x*f;
}
int n,a[N];
int T,start;
int main(){
T = read();
while(T--){
start = 1;
n = read();
for(int i=1;i<=n;i++)
a[i] = read();
if(n & 1){
start = 4;
if(a[1] + a[2] != 0)
printf("%d %d %d ",-a[3],-a[3],a[1]+a[2]);
else if(a[2] + a[3] != 0)
printf("%d %d %d ",a[2]+a[3],-a[1],-a[1]);
else printf("%d %d %d ",-a[2],a[1]+a[3],-a[2]);
}
for(int i=start;i<=n;i+=2)
printf("%d %d ",-a[i+1],a[i]);
printf("\n");
}
return 0;
}