思路清晰,用二分自己验是对的,但全WA。。。。。

P1678 烦恼的高考志愿

果圆 @ 2020-10-14 16:51:27

#include<iostream>
#include<cstdio>
#include<cmath>
#include<cstring>
#include<algorithm>
using namespace std;
int a[1000050],b[1000050],n,m,u;
int ttt(int x)
{
    int l=1,r=m;
    while(l<r)
    {
        int mid=l+r>>1;
        if(abs(a[mid]-x)<=abs(a[mid+1]-x)) r=mid;
        else l=mid+1;
    }
    return abs(a[l]-x);
}
int main()
{
    cin>>m>>n;
    for(int i=1;i<=m;i++)   cin>>a[i];
    for(int i=1;i<=n;i++)   cin>>b[i];
    sort(a+1,a+m+1);
    for(int i=1;i<=n;i++)   u+=ttt(b[i]);
    cout<<u;
    return 0;
}

by yuzhuofan @ 2020-12-17 15:22:48

我也是。


|