CF1075B Taxi drivers and Lyft
题目描述
Palo Alto 是一座特殊的城市,因为它是一条无限的坐标线。这座城市还以 Lyft Level 5 办公室而闻名。
Lyft 如今非常受欢迎,城市中所有 $m$ 位出租车司机每天都使用它来运送城市中剩余的 $n$ 位乘客。
Palo Alto 的每位居民(包括出租车司机)都住在唯一的位置(不存在两位居民住在同一坐标的情况)。
Lyft 系统非常智能:当乘客叫车时,他的请求不会发送给所有出租车司机,而是只发送给距离他最近的那一位。如果有多位司机距离相同,则选择坐标较小的那位司机。
但有一天早晨,出租车司机们产生了疑问:如果他们是当天第一个被叫车的司机,那么会有多少乘客会呼叫指定的出租车司机?换句话说,你需要为每一位出租车司机 $i$ 计算 $a_i$ —— 即当所有司机和乘客都在家时,会有多少乘客会呼叫第 $i$ 位出租车司机?
出租车司机不能接送自己,也不能接送其他出租车司机。
输入格式
第一行包含两个整数 $n$ 和 $m$($1 \le n, m \le 10^5$),分别表示乘客数和出租车司机数。
第二行包含 $n + m$ 个整数 $x_1, x_2, \ldots, x_{n+m}$($1 \le x_1 < x_2 < \ldots < x_{n+m} \le 10^9$),其中 $x_i$ 表示第 $i$ 位居民的坐标。
第三行包含 $n + m$ 个整数 $t_1, t_2, \ldots, t_{n+m}$($0 \le t_i \le 1$)。如果 $t_i = 1$,则第 $i$ 位居民是出租车司机,否则是乘客。
保证 $t_i = 1$ 的 $i$ 的个数恰好为 $m$。
输出格式
输出 $m$ 个整数 $a_1, a_2, \ldots, a_m$,其中 $a_i$ 表示第 $i$ 位出租车司机的答案。如果某位出租车司机在所有司机中按坐标从小到大排序后排在第 $i$ 位,则他为第 $i$ 位司机(参见样例以便理解)。
说明/提示
在第一个样例中,只有一位出租车司机,因此所有 $n$ 位乘客的订单都会分配给他。
在第二个样例中,第一位出租车司机住在坐标为 $2$ 的位置,第二位住在坐标为 $6$ 的位置。显然,住在坐标 $3$ 的乘客距离第一位司机最近,住在坐标 $5$ 的乘客距离第二位司机最近。住在坐标 $4$ 的乘客距离两位司机距离相同,但由于第一位司机的坐标更小,因此该乘客的订单会分配给第一位司机。
在第三个样例中,只有一位乘客,他距离第四位司机最近。
由 ChatGPT 4.1 翻译