比赛 20110724 评测结果 AAAAAAAAAA
题目名称 并行 最终得分 100
用户昵称 苏轼 运行时间 0.000 s
代码语言 C++ 内存使用 0.00 MiB
提交时间 2011-07-24 09:00:37
显示代码纯文本
#include <cstdio>
#include <cstdlib>
#include <algorithm>
using namespace std;

const int MAXN=10005;
const int oo=~0u>>2;

int N;
int d[MAXN][2];
int P[MAXN],R[MAXN];

int main()
{
	freopen("parellel.in","r",stdin);
	freopen("parellel.out","w",stdout);
	while(true)
	{
		scanf("%d",&N);
		if (N==0)
			break;
		for(int i=0;i<N;i++)
			scanf("%d",P+i);
		for(int i=0;i<N-1;i++)
			scanf("%d",R+i);
		sort(P,P+N);
		sort(R,R+N-1);
		d[0][0]=abs(P[0]-R[0]);
		for(int i=1;i<N-1;i++)
			d[i][0]=d[i-1][0]+abs(P[i]-R[i]);
		d[N-1][0]=oo;
		d[0][1]=oo;
		for(int i=1;i<N;i++)
			d[i][1]=min(d[i-1][1],d[i-1][0])+abs(P[i]-R[i-1]);
		printf("%d\n",d[N-1][1]);
	}
	return 0;
}