蒟蒻求助
查看原帖
蒟蒻求助
1112027
Alananan楼主2024/5/25 15:33
#include<iostream>
#include<cstdio>
using namespace std;
const int N = 1e5+10;
int a[N],n,m;
long long sum;
int find(int x){
	int l = 1,r = n,mid;
	while(l<r){
		mid = (l + r) / 2;
		if(a[mid] >= x){
			r = mid;
		}
		else l = mid+1;
	}	
	if(a[l] == x) return l;
}
int main(){
	scanf("%d %d",&n,&m);
	for(int i = 1;i <= n;i++){
		scanf("%d",&a[i]);
	}
	while(m--){
		int k;
		scanf("%d",&k);
		int ans = find(k);
		sum += min(k - a[ans],a[ans+1]-k);
	}
	printf("%ld\n",sum);
	
	
	return 0;
}

麻烦问一下这段代码错在哪里了QAQ 蒟蒻不懂

2024/5/25 15:33
加载中...