70求助,测试点答案对,但是不过

P1678 烦恼的高考志愿

星空幻想v @ 2022-06-05 16:39:58

#include<iostream>
#include<algorithm>
#include<cstdio>
using namespace std;
int n,m,s,z;
struct asd{
    int v;
    bool b;
}a[200101];
int n1[1000001],m1[1000001];
bool cmp(asd x,asd y){
    return x.v<y.v;
}
int main(){
    cin>>n>>m;
    for(int i=1;i<=n;i++){
        scanf("%d",&n1[i]);
        a[++s].v=n1[i];
        a[s].b=false;
    }
    for(int i=1;i<=m;i++){
        scanf("%d",&m1[i]);
        a[++s].v=m1[i];
        a[s].b=true;
    }
    sort(a+1,a+s+1,cmp);
    for(int i=1;i<=s;i++){
        if(a[i].b==true){
            int x,y;
            if(i!=s)
            for(int j=i;j<=s;j++){
                if(a[j].b==false){
                    x=a[j].v;
                    break;
                }
            }
            if(i!=1)
            for(int j=i;j>=1;j--){
                if(a[j].b==false){
                    y=a[j].v;
                    break;
                }
            }
            z+=min(abs(y-a[i].v),abs(x-a[i].v));
        }
    }
    cout<<z;
    return 0;
}

|