链接:
https://www.nowcoder.com/acm/contest/113/B
来源:牛客网
来源:牛客网
给长度为n的序列A,长度为m的序列B。可以给A序列里每个元素加上x且B序列里每个元素减去x (x可以是负数),问
的最小值。
样例:
4 5
-8 2 -4 10
5 -5 -4 -9 10
输出:
57
被自己菜醒的式子变化: == ∑|(x-(-Ai))| + ∑|(x-Bi)|+ | x - 0 |.
是该对自己的菜警告一下!
#include <iostream> #include<stdio.h> #include<algorithm> #include<string.h> using namespace std; typedef long long ll; const int maxn = 100000; const int inf = (1e9+1005); int n,m,a[maxn*2+5]; int main() { scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%d",&a[i]),a[i]*=-1; for(int i=1;i<=m;i++) { int x; scanf("%d",&x); a[n+i] = x; } a[n+m+1] = 0; sort(a+1,a+n+m+2); int inx = (n+m+1)/2 + (n+m+1)%2; ll ans = 0; for(int i=1;i<=n+m+1;i++) ans+=abs(a[inx]-a[i]); printf("%lld\n",ans); return 0; }