985有2 * n - 1个整数,他每次可以将其中n个数变号,操作次数不限,问他可以得到的最大和。
输出一个整数代表可以得到的最大和。
hpu
如果n为奇数,则所有的负数都可以变为正数,否则,如果负数的个数为偶数则可以全部变为正数,为奇数的话最后会有一个负数剩余
#include<stdio.h> int main() { int sum,min,ans,t,n,i; int a[2010]; scanf("%d",&t); while(t--) { scanf("%d",&n); min=2000; sum=0; ans=0; for(i=1;i<2*n;i++) { scanf("%d",&a[i]); if(a[i]<0) { ans++; a[i]=-a[i]; } sum+=a[i]; if(a[i]<min) min=a[i]; } if(n%2) printf("%d\n",sum); else { if(ans%2==0) printf("%d\n",sum); else printf("%d\n",sum-2*min); } } return 0; }