求救!样例过了,其他全WA,玄关!
  • 板块灌水区
  • 楼主fish_fish
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/7/13 09:33
  • 上次更新2023/11/3 10:11:30
查看原帖
求救!样例过了,其他全WA,玄关!
901698
fish_fish楼主2023/7/13 09:33

P1678(烦恼的高考志愿)

#include<bits/stdc++.h>
using namespace std;
int m,n,school[100005]={},score[100005]={},sum=0;
int test(int x,int l,int r,int ans1,int ans2){
    int middle=(l+r)/2;
    if(l>r){
        int ans11,ans22;
        if(school[ans1]-x>0) ans11=school[ans1]-x;
        else ans11=x-school[ans1];
        if(school[ans2]-x>0) ans22=school[ans2]-x;
        else ans22=x-school[ans2];
        if(ans11<ans22) return ans11;
        else return ans22;
    }
    else if(school[middle]>x) return test(x,l,middle-1,ans2,middle);
    else if(school[middle]<x) return test(x,middle+1,r,ans2,middle);
    else return 0;
}
int main(){
    cin>>m>>n;
    for(int i=0;i<m;i++) cin>>school[i];
    for(int i=0;i<n;i++) cin>>score[i];
    sort(school,school+m);
    for(int i=0;i<n;i++){
        sum+=test(score[i],0,n-1,0,0);
    }
    cout<<sum<<endl;
    return 0;
}
2023/7/13 09:33
加载中...