求AC代码(悬赏小号关注)
  • 板块灌水区
  • 楼主Xiaonanu
  • 当前回复1
  • 已保存回复1
  • 发布时间2023/6/10 13:21
  • 上次更新2023/10/23 13:30:27
查看原帖
求AC代码(悬赏小号关注)
631943
Xiaonanu楼主2023/6/10 13:21

选班长

题目描述
为了防止后排的同学开小差,老师安排所有的同学都坐在第一排。
班上原有 N 个同学,按照入学时间,第 i 个同学的学号是 i,对应的位置是 Xi。
为了收作业方便,老师希望班长的位置到所有同学的位置的距离总和尽量小(如果有多个同学的位置满足最小距离总和,班长总是被选为最早入学的那个)。
每次有同学转学加入,学号是使用当前最小未被分配的编号(比如下一个同学转学加入,他的学号会是 N+1),并且被安排到位置 Yi 就坐。
随着新同学加入,老师会重新选择班长,使得收作业要求(即班长的位置到所有同学的位置的距离总和尽量小)仍然得到满足。
问每次新同学加入后,应该选择哪位同学做班长。

输入格式
第一行有一个数 N,代表班上原有同学的人数。
接下来一行有 N 个数,Xi 表示班上第 i 个同学的位置,学号对应是 i。
接下来一行有一个数 M,表示会有 M 个同学转学加入。
接下来一行有 M 个数,Yi 表示新转学加入的同学的位置,学号对应是 N + i。

输出格式
输出 M 个数,分别代表第 i 个同学转学加入后,被重新选为班长的同学的学号。

输入输出样例
输入 #1
2
1 2
4
4 3 5 6
输出 #1
2
2
4
3
说明/提示
对于 20% 的数据,满足 N < 100, M < 100;
对于 40% 的数据,满足 N < 1000, M < 1000;
对于所有的数据,满足 N < 100000, M < 100000;
所有 Xi、Yi 均不相等,且满足0 < Xi,Yi < 1000000000。
2023/6/10 13:21
加载中...