求助!样例过了,提交全WA,玄关!
查看原帖
求助!样例过了,提交全WA,玄关!
901698
fish_fish楼主2023/7/13 10:01
#include<bits/stdc++.h>
using namespace std;
int m,n,school[100005]={},score[100005]={},sum=0;
int test(int x,int l,int r,int ans1,int ans2){
    int middle=(l+r)/2;
    if(l>r){
        int ans11,ans22;
        if(school[ans1]-x>0) ans11=school[ans1]-x;
        else ans11=x-school[ans1];
        if(school[ans2]-x>0) ans22=school[ans2]-x;
        else ans22=x-school[ans2];
        if(ans11<ans22) return ans11;
        else return ans22;
    }
    else if(school[middle]>x) return test(x,l,middle-1,ans2,middle);
    else if(school[middle]<x) return test(x,middle+1,r,ans2,middle);
    else return 0;
}
int main(){
    cin>>m>>n;
    for(int i=0;i<m;i++) cin>>school[i];
    for(int i=0;i<n;i++) cin>>score[i];
    sort(school,school+m);
    for(int i=0;i<n;i++){
        sum+=test(score[i],0,n-1,0,0);
    }
    cout<<sum<<endl;
    return 0;
}
2023/7/13 10:01
加载中...