求救!样例过了,提交全WA,玄关
  • 板块学术版
  • 楼主fish_fish
  • 当前回复0
  • 已保存回复0
  • 发布时间2023/7/13 09:28
  • 上次更新2023/11/3 10:11:34
查看原帖
求救!样例过了,提交全WA,玄关
901698
fish_fish楼主2023/7/13 09:28

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:28
加载中...