您的位置:首页 > 其它

【zzulioj 1899 985的最大和难题】

2016-08-03 19:00 106 查看
985的最大和难题

Description

985有2 * n - 1个整数,他每次可以将其中n个数变号,操作次数不限,问他可以得到的最大和。

Input

第一行输入一个整数t,代表有t组测试数据。

每组数据占两行,第一行输入一个整数n,下面一行输入2*n-1个整数a[]。

注:1 <= t <= 32,1 <= n <= 1e3,-1e3 <= a[] <= 1e3。

Output

输出一个整数代表可以得到的最大和。

Sample Input

2

2

1 1 1

2

-10 20 -10

Sample Output

3

40

HINT

Source

hpu

#include<cstdio>
#include<algorithm>
#include<cstring>
#include<queue>
#include<cmath>
using namespace std;
int a[111*2];
int main()
{
int T,n,ans,sum,i,m;
scanf("%d",&T);
while(T--)
{
ans=0;sum=0;
scanf("%d",&n);
m=n*2-1;
for(i=0;i<m;i++)
{
scanf("%d",&a[i]);
if(a[i]<0)
{
sum++;
a[i]=-a[i];
}
ans+=a[i];
}
sort(a,a+m);
if(n%2==0)
{
if(sum>n)
sum-=n;
if(sum%2!=0)
ans-=2*a[0];
}
printf("%d\n",ans);
}
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: