1 条题解

  • 1
    @ 2024-1-10 18:39:45
    #include
    using namespace std;
    int a[1000001],b;
    int main(){
    	int m,n,s=0,c=0;
    	long long num=0;//十年OI一场空,不开long long 见祖宗;
    	cin>>m>>n;
    	for(int i=1;i<=m;i++){
    		cin>>a[i];//输入;
    	}
    	sort(a+1,a+m+1);//排序;
    	s=1e8;	
    	while(c<n){
    		cin>>b;
    		c++;
    		int l=1,r=m;
    		while(l<r){
    			int mid=(l+r+1)/2;
    			if(a[mid]<=b)l=mid;
    			else r=mid-1;//二分搜索;	
    		}		
    		if(l+1<=m)num+=min(abs(b-a[l]),abs(a[l+1]-b));//特判,不然最后一个点会WA;
    		else num+=abs(b-a[l]); 
    	}		
    	cout<<num;//输出答案;
        return 0;
    }
    

    (抄题解没亩)

    • 1

    信息

    ID
    688
    时间
    1000ms
    内存
    128MiB
    难度
    9
    标签
    递交数
    27
    已通过
    2
    上传者