70求助,测试点答案对,但是不过
查看原帖
70求助,测试点答案对,但是不过
566670
星空幻想v楼主2022/6/5 16:39
#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m,s,z;
struct asd{
	int v;
	bool b;
}a[200101];
int n1[1000001],m1[1000001];
bool cmp(asd x,asd y){
	return x.v<y.v;
}
int main(){
	cin>>n>>m;
	for(int i=1;i<=n;i++){
		scanf("%d",&n1[i]);
		a[++s].v=n1[i];
		a[s].b=false;
	}
	for(int i=1;i<=m;i++){
		scanf("%d",&m1[i]);
		a[++s].v=m1[i];
		a[s].b=true;
	}
	sort(a+1,a+s+1,cmp);
	for(int i=1;i<=s;i++){
		if(a[i].b==true){
			int x,y;
			if(i!=s)
			for(int j=i;j<=s;j++){
				if(a[j].b==false){
					x=a[j].v;
					break;
				}
			}
			if(i!=1)
			for(int j=i;j>=1;j--){
				if(a[j].b==false){
					y=a[j].v;
					break;
		 		}
			}
			z+=min(abs(y-a[i].v),abs(x-a[i].v));
	 	}
	}
	cout<<z;
	return 0;
}
2022/6/5 16:39
加载中...