求助!0分!!!

P1678 烦恼的高考志愿

kungeruyi @ 2024-06-15 09:22:58

这是我的0分代码,哪里错了???

#include<bits/stdc++.h>
using namespace std;
int main()
{
    int m,n,a[100010],b;long long ans=0;
    cin>>m>>n;
    for(int i=1;i<=m;i++){
        cin>>a[i];
    } 
    sort(a+1,a+m+1);
    for(int i=1;i<=n;i++){
        cin>>b;
        int pos=lower_bound(a+1,a+n,b)-a;
        if(a[pos]>b)
            ans+=a[pos]-b;
        else
            ans+=b-a[pos];
            //cout<<"a[pos]="<<a[pos]<<"  "<<"ans="<<ans<<endl;
    }
    cout<<ans;
    return 0;
}

by joarith @ 2024-06-15 09:51:50

只给个提示
lower_bound只会返回第一个大于等于目标值的位置
所以line16-17是无效的


by syk_114514 @ 2024-08-20 20:32:11

lower_bound只会返回第一个大于等于目标值的位置!!!


|