【zzulioj 1899 985的最大和难题】

来源:互联网 发布:《算法时代》 编辑:程序博客网 时间:2024/05/06 09:11

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; } 
0 0
原创粉丝点击