计算机学院大学生程序设计竞赛(2015’12) 1003 The collector’s puzzle

#include<cstdio>
#include<algorithm>
using namespace std;
using namespace std;

const int maxn=100000+10;
int a[maxn],b[maxn];

int main()
{
    int n,m;
    while(scanf("%d %d",&n,&m)!=EOF)
    {
        for(int i=1; i<=n; i++) scanf("%d",&a[i]);
        for(int i=1; i<=m; i++) scanf("%d",&b[i]);
        sort(a+1,a+n+1);
        sort(b+1,b+m+1);
        b[0]=-9999999;
        int now=m,ans=0;
        for(int i=n; i>=1; i--)
        {
            while(abs(a[i]-b[now])>=abs(a[i]-b[now-1])) now--;
            ans=ans+abs(a[i]-b[now]);
        }
        printf("%d\n",ans);
    }
    return 0;
}

 

posted @ 2015-12-27 17:38  Fighting_Heart  阅读(462)  评论(4编辑  收藏  举报