链接:https://www.nowcoder.com/acm/contest/113/B
来源:牛客网
题目描述
给长度为n的序列A,长度为m的序列B。可以给A序列里每个元素加上x且B序列里每个元素减去x (x可以是负数),问
的最小值
![](https://i-blog.csdnimg.cn/blog_migrate/d30ba555bf10d8a2cbab52903c136be2.png)
输入描述:
第一行两个整数分别表示n,m
接下来一行n个整数表示序列A
接下来一行m个整数表示序列B
输出描述:
输出一个整数表示答案
![](https://i-blog.csdnimg.cn/blog_migrate/4416569feb695535d0d33c4ca7a4c003.png)
1 #include <iostream> 2 #include <cstdio> 3 #include <cstring> 4 #include <vector> 5 #include <queue> 6 #include <algorithm> 7 #include <cstdlib> 8 #include <map> 9 #include <stack> 10 #include <string> 11 using namespace std; 12 13 const int maxn = 2e5 + 10; 14 const int mod = 1e9 + 7; 15 typedef long long LL; 16 int a[maxn], n, m, x; 17 int main() { 18 scanf("%d%d", &n, &m); 19 for (int i = 1 ; i <= m + n ; i++) { 20 scanf("%d", &x); 21 if (i <= n) a[i] = x; 22 else a[i] = -x; 23 } 24 sort(a + 1, a + n + m + 2); 25 LL sum = 0; 26 for (int i = 1 ; i <= n + m + 1 ; i++ ) 27 sum += (LL)(abs(a[i] - a[(n + m + 2) / 2])); 28 printf("%lld\n", sum); 29 return 0; 30 }