0分 hack,样例,自测都过了
查看原帖
0分 hack,样例,自测都过了
1568852
want_to_AC_b2a9楼主2025/7/2 11:52

求救0pts

#include <iostream>
#include <algorithm>
#include <cmath>
using namespace std;
#define int long long
int fen[100005],gu[100005];
int max(int a,int b){return (a>b)?a:b;}
int min(int a,int b){return (a<b)?a:b;}
signed main(){
    int n,m;
    cin>>n>>m;
    for(int i=0;i<n;i++){
        cin>>fen[i];
    }
    for(int i=0;i<m;i++){
        cin>>gu[i];
    }
    sort(fen,fen+n);
    int ans=0;
    //cout<<1;
    for(int i=0;i<m;i++){
        int l=0,r=n-1;
        int mid=(l+r)/2;
       // cout<<1;
        while(l<=r){
            //cout<<i<<'\n';
            int x=abs(gu[i]-fen[mid]);
            int y=abs(gu[i]-fen[max(mid-1,0)]);
            int z=abs(gu[i]-fen[min(mid+1,n-1)]);
            //cout<<x<<' '<<y<<' '<<z<<'\n';
            if(x<=y&&x<=z){
                ans+=x;
                break;
            }else if(x-y>x-z){
                r=mid-1;
                mid=(l+r)/2;
            }else{
                l=mid+1;
                mid=(l+r)/2;
            }
        }
        //cout<<mid<<' '<<i<<'\n';
    }
    cout<<ans;
}
2025/7/2 11:52
加载中...