问题 J: 亚运会旗帜

简介: 题目描述2022年亚运会在杭州举行。浙江理工大学经常为这些大的赛事设计一些标识,上次冬运会就有浙江理工大学的设计。亚运会开幕式,交给浙江理工大学一个旗帜设计,要求设计的旗帜有强烈的颜色反差感。 艺术设计学院的老师对颜色进行了设计,每个颜色对应一个数字,把第一次出现的n面旗帜用数组a表示,第2次出现的用数组b表示A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。

题目描述


2022年亚运会在杭州举行。

浙江理工大学经常为这些大的赛事设计一些标识,上次冬运会就有浙江理工大学的设计。

亚运会开幕式,交给浙江理工大学一个旗帜设计,要求设计的旗帜有强烈的颜色反差感。

艺术设计学院的老师对颜色进行了设计,每个颜色对应一个数字,把第一次出现的n面旗帜用数组a表示,第2次出现的用数组b表示

A={a[1],a[2],…,a[n]},B={b[1],b[2],…,b[n]},从A、B中各选出n个元素进行一一配对(可以不按照原来在序列中的顺序),并使得所有配对元素差的绝对值之和最大。


输入


输入的第1行为1个整数n 第2行包含n个整数,题目中的A序列。 第3行包含n个整数,题目中的B序列。


输出


一个数,最大配对


样例输入

4

2 5 6 3

1 4 6 7

样例输出


14

提示

3与6配对,2与7配对,5与4配对,6与1配对,绝对值之差和为14

对于10%的数据,有n≤20;  

对于30%的数据,有n≤100;  

对于50%的数据,有n≤1000;  

对于100%的数据,有n≤10000;a[i],b[i]≤1000。


代码:

#include<iostream>
#include<algorithm>
using namespace std;
int main()
{
  int n;
  cin >> n;
  long long sum=0;
  int* a, * b;
  a = new int[n];
  b = new int[n];
  for (int i = 0; i < n; i++) {
    cin >> a[i];
  }
  for (int i = 0; i < n; i++) {
    cin >> b[i];
  }
  sort(a, a + n);
  sort(b, b + n);
  int x;
  for (int i = 0, j = n - 1; i < n; i++, j--) {
    x = a[i] - b[j];
    x = (x > 0) ? x : (-x);
    sum += x;
  }
  cout << sum;
  delete[]a;
  delete[]b;
  return 0;
}


相关文章
刚刚!神舟十二号发射成功!中国宇航员再次征战太空!
刚刚!神舟十二号发射成功!中国宇航员再次征战太空!
刚刚!神舟十二号发射成功!中国宇航员再次征战太空!
|
物联网 大数据 程序员
不如到雄县的街头走一走
雄安新区的设立让雄县、安新、容城三个小城一夜之间举世瞩目,新区未来的5年,将迎来发展关键期,这个定位为“创新高地”的雄安新区,未来的发展怎么能少得了程序员这样的科技型从业人员?
3146 0