悬关 虽然过了但还是不懂lr的设置
查看原帖
悬关 虽然过了但还是不懂lr的设置
1179393
Noldo楼主2024/3/28 16:39
#include<iostream>
#include<algorithm>
using namespace std;
const int N = 100010;
int n, m;
int stuscore[N];
int schscore[N];
long long l, r;
long long ans = 0;
int cal(int i) {
    int x = abs(stuscore[i] - schscore[l]);
    int y = abs(stuscore[i] - schscore[r]);
    if (l == -1)return y;
    if (x > y)return y;
    else return x;
}
int main(){
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        cin >> schscore[i];
    }
    for (int i = 0; i < m; i++) {
        cin >> stuscore[i];
    }
    sort(schscore,schscore+n);
    for (int i = 0; i < m; i++) {
        l = 0, r = n-1;
        while (l +1< r) {
                int mid = (l + r) / 2;
                if (stuscore[i] < schscore[mid])r = mid;
                else l = mid;
            }
        ans += cal(i);
    }
    cout << ans << endl;
    return 0;
}
2024/3/28 16:39
加载中...