求助,#0 TLE了五个点

P1678 烦恼的高考志愿

Da_Capo_ @ 2023-06-20 16:13:31

#include<bits/stdc++.h>
using namespace std;
int n,m,sch[100002],stu[100002];
long long Find(int k) {
    int i=1;
    while(k>sch[i])i++;
    int x1=sch[i]-k;
    int x2=k-sch[i-1];
    return x1<x2?x1:x2;
}
int main() {
    ios::sync_with_stdio(0);
    cin>>n>>m;
    for(int i=1; i<=n; i++) {
        cin>>sch[i];
    }
    sort(sch+1,sch+1+n);
    long long sum=0;
    for(int i=1; i<=m; i++) {
        cin>>stu[i];
        if(stu[i]<sch[1])
            sum+=sch[1]-stu[i];
        else if(stu[i]>sch[n])
            sum+=stu[i]-sch[n];
        else
            sum+=Find(stu[i]);
    }
    cout<<sum;
    return 0;
}

|