您的位置:首页 > 理论基础 > 计算机网络

杭州电子科技大学程序设计竞赛(2016’12)- 网络同步赛 1007

2017-03-02 10:41 260 查看


反差萌

Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others)

Total Submission(s): 0    Accepted Submission(s): 0


Problem Description
有2N个人,每人有个萌值Mi(1<=i<=2N)。

要求将他们分为N对,使得反差值之和最大。

其中反差值的含义如下:若x和y是一对,则他们贡献|Mx-My|点反差值。

Input
第一行是一个数T,表示测试实例的个数。

后面跟着T行,每行第一个数N,然后是2N个人的萌值Mi。

1<=T<=10

1<=N<=1000

-1000<=Mi<=1000

所有输入的数都是整数。

Output
对于每组实例,请输出反差值之和的最大值,每个测试实例占一行。

Sample Input

2
1 13 14
2 1 -2 0 3

Sample Output

1
6
解法:排序+两端相加

#include<bits/stdc++.h>
using namespace std;
int main()
{
int t;
cin>>t;
while(t--)
{
int a[10000];
int n;
cin>>n;
for(int i=1;i<=2*n;i++)
{
cin>>a[i];
}
int sum=0;
sort(a+1,a+1+2*n);
for(int i=1;i<=n;i++)
{
sum+=(abs(a[i]-a[2*n-i+1]));
}
cout<<sum<<endl;
}
return 0;
}


转自http://www.cnblogs.com/yinghualuowu/p/6217933.html
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐