【hpu oj 1018 985的最大和难题 [思维]】
程序员文章站
2022-07-04 12:26:55
...
/*
np 正数个数
nm 负数个数
Min 记录绝对值最小的数字
s 记录所有数字的和
*/
#include<cstdio>
int main()
{
int n,t,a,np,nm,Min,s,m;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
Min=1000000000+1103,np=nm=s=0;
m=2*n-1;
while(m--)
{
scanf("%d",&a);
if(a<0) a=-a,nm++;
else np++;
s+=a;
if(a<Min) Min=a;
}
/*n为奇数时,变换n可以一次增加或减少一个负数,直到所有负数全化为正数*/
if(n&1)
printf("%d\n",s);
else/*n为偶数时,变换n个可以一次增加或减少2个负数*/
if(nm&1)
printf("%d\n",s-2*Min);
else
printf("%d\n",s);
}
return 0;
}
上一篇: VBA基础学习之1.11事件