求助,本人思想可能些许与众不同,望见谅 wa+re
查看原帖
求助,本人思想可能些许与众不同,望见谅 wa+re
482035
PPDC总司令楼主2021/9/10 20:27
#include<iostream>
#include<cstdio>
#include<algorithm>

using namespace std;

int m,n;
struct s
{
	int f;
	bool p;
} b[100000];


bool cmp1(s x,s y)
{
	return x.f<y.f;
}
long long sum=0;
long long ans[100000],ttt=1;
void find(int i)
{

	int l=0,r=0;
	for(int j=i;j>=1;j--)
	{
		if(b[j].p==0)
		{
			l=b[i].f-b[j].f;
			break;
		}
	}
	for(int j=i;j<=m+n;j++)
	{
		if(b[j].p==0)
		{
			r=b[j].f-b[i].f;
			break;
		}
	}
	if(r==0)
	r=14523885;
	if(l==0)
	l=14528835;
	if(r>=l)
    ans[ttt]=l;
	if(r<l)
    ans[ttt]=r;
    ttt++;
	//cout<<l<<" "<<r<<endl;
}


int main()
{
	
	cin>>m>>n;
	for(int i=1;i<=m;i++)
	{
		cin>>b[i].f;
		b[i].p=0; 
	}
	for(int i=m+1;i<=m+n;i++)
	{
		cin>>b[i].f;
		b[i].p=1; 
	}
	
	sort(b+1,b+m+n+1,cmp1);
	

	for(int i=1;i<=m+n;i++)
	{
		if(b[i].p==1)
		{
			find(i);
		} 
	}
	for(int i=1;i<=100000;i++)
	{
	    sum+=ans[i];
	}
	cout<<sum;
}
2021/9/10 20:27
加载中...