100分代码求调
  • 板块灌水区
  • 楼主mc2djwh
  • 当前回复2
  • 已保存回复3
  • 发布时间2024/9/26 22:58
  • 上次更新2024/9/27 13:09:19
查看原帖
100分代码求调
1277996
mc2djwh楼主2024/9/26 22:58

最后一个点没A,怎么肥四

烦恼的高考志愿

题目背景

计算机竞赛小组的神牛 V 神终于结束了高考,然而作为班长的他还不能闲下来,班主任老 t 给了他一个艰巨的任务:帮同学找出最合理的大学填报方案。可是 v 神太忙了,身后还有一群小姑娘等着和他约会,于是他想到了同为计算机竞赛小组的你,请你帮他完成这个艰巨的任务。

题目描述

现有 mm 所学校,每所学校预计分数线是 aia_i。有 nn 位学生,估分分别为 bib_i

根据 nn 位学生的估分情况,分别给每位学生推荐一所学校,要求学校的预计分数线和学生的估分相差最小(可高可低,毕竟是估分嘛),这个最小值为不满意度。求所有学生不满意度和的最小值。

输入格式

第一行读入两个整数 m,nm,nmm 表示学校数,nn 表示学生数。

第二行共有 mm 个数,表示 mm 个学校的预计录取分数。第三行有 nn 个数,表示 nn 个学生的估分成绩。

输出格式

输出一行,为最小的不满度之和。

样例 #1

样例输入 #1

4 3
513 598 567 689
500 600 550

样例输出 #1

32

提示

数据范围:

对于 30%30\% 的数据,1n,m10001\leq n,m\leq1000,估分和录取线 10000\leq10000

对于 100%100\% 的数据,1n,m1000001\leq n,m\leq100000,估分和录取线 1000000\leq 1000000 且均为非负整数。 #include <bits/stdc++.h> using namespace std; int main(){ int m,n,cnt=0; cin>>m>>n; int a[100001],b[100001]; for(int i=0;i<m;i++){ cin>>a[i]; } for(int i=0;i<n;i++){ cin>>b[i]; } sort(a,a+m); for(int i=0;i<n;i++){ int *f=lower_bound(a,a+m,b[i]); int ans=INT_MAX; if(f!=a+m){ ans=min(ans,abs(b[i]-f)); } if(f!=a){ ans=min(ans,abs(b[i]-(f-1))); } cnt+=ans; } cout<<cnt; return 0; }

2024/9/26 22:58
加载中...