70分求助
查看原帖
70分求助
311747
roooot4楼主2020/9/22 19:37
#include<bits/stdc++.h>
using namespace std;
int a[10000001];
int main ()
{
    int n,m,s=0,l,r,mid,t;
    scanf("%d %d",&m,&n);
    for(int i=1;i<=m;i++)
        scanf("%d",&a[i]);
    sort(a+1,a+m+1);
    while(n--)
    {
        scanf("%d",&t);
        l=1;r=m;
        while(l<=r)
        {
            mid=(l+r)/2;
            if(a[mid]==t)
            {
                r=mid;
                break;
            }
            if(a[mid]<t)
                l=mid+1;
            else
                r=mid-1;
        }
        s=s+min(abs(a[r]-t),abs(a[l]-t));
        printf("%d ",s);
    }
    printf("%d",s);
    return 0;
}

3,8,10没有过,3算出来的结果比答案还要小【捂脸】

2020/9/22 19:37
加载中...