2024/3/24 蓝桥杯

P1678 烦恼的高考志愿 二分

java 复制代码
import java.util.Arrays;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int[] a = new int[n+1];//学校
		int[] b = new int[m+1];//学生
		for(int i=1;i<=n;i++) {
			a[i] = sc.nextInt();
		}
		for(int i=1;i<=m;i++) {
			b[i] = sc.nextInt();
		}
		Arrays.sort(a,1,n+1);
		Arrays.sort(b,1,m+1);
		
		long sum = 0;
		for(int i=1;i<=m;i++) {//枚举学生
			int l = 1, r = n;
			while(l<r) {
				int mid = (l+r)/2;
				if(a[mid]>=b[i]) r = mid;
				else l = mid+1;
			}//找到第一个大于等于学生分数的学校
			if(l == 1)
				sum+=a[1]-b[i];
			if(l>=2)
				sum+=Math.min(Math.abs(a[l]-b[i]),Math.abs(a[l-1]-b[i]));
		}
		System.out.println(sum);
	}
}
相关推荐
2301_797312261 分钟前
学习Java42天
java·开发语言·学习
chilavert3183 分钟前
技术演进中的开发沉思-325 JVM:java体系技术全貌(下)
java·开发语言·jvm
chilavert3187 分钟前
技术演进中的开发沉思-324 JVM:java技术体系全貌(上)
java·开发语言
pcm12356712 分钟前
通信服务前沿知识
java
CCPC不拿奖不改名26 分钟前
python基础面试编程题汇总+个人练习(入门+结构+函数+面向对象编程)--需要自取
开发语言·人工智能·python·学习·自然语言处理·面试·职场和发展
晓131327 分钟前
第二章:Redis常见命令与Java客户端
java·数据库·redis
invicinble28 分钟前
对于springboot
java·spring boot·后端
莫问前路漫漫38 分钟前
JRE 核心实操指南:安装、配置、调优与问题排查
java·eclipse·tomcat·jre
填满你的记忆1 小时前
【从零开始——Redis 进化日志|Day7】双写一致性难题:数据库与缓存如何不再“打架”?(附 Canal/读写锁实战)
java·数据库·redis·缓存·面试
灵感菇_1 小时前
Android OkHttp框架全解析
android·java·okhttp·网络编程