题目描述
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; }