B. 出租车(taxi)

    Type: Default File IO: taxi 1000ms 256MiB

出租车(taxi)

You cannot submit for this problem because the contest is ended. You can click "Open in Problem Set" to view this problem in normal mode.

题目描述

A 城是一个独特的城市,因为它是一条无尽的数轴。

打车软件 U 如今非常流行,其被城市中所有的 mm 名出租车司机使用,他们每天运送剩下的城市居民——nn 名乘客。

A 城的每个居民(包括出租车司机)都住在一个独一无二的位置,也就是说没有两个居民的坐标是相同的。

U 的系统非常聪明:当乘客叫车时,他的呼叫不会传给所有的出租车司机,而只会传给离他最近的那个司机。如果有多个司机距离相同,那么坐标较小的司机会收到呼叫。

但是,有一天早上,出租车司机们好奇:当一个乘客是当天第一个叫车的,会有多少乘客选择给指定的出租车司机打电话?换句话说,你需要为每个出租车司机 ii 找到 aia_i——当所有司机和乘客都在家时,会有多少乘客选择给第 ii 名出租车司机打电话?

出租车司机不能接送自己或呼叫其他出租车司机。

输入格式

第一行两个正整数 n,mn,m

第二行 n+mn+m 个正整数 x1,x2,,xn+mx_1,x_2,\cdots,x_{n+m},其中 xix_i 表示第 ii 位居民的家的位置。

第三行 n+mn+m 个整数 t1,t2,,tn+mt_1,t_2,\cdots,t_{n+m} 表示每个居民的身份,如果 ti=1t_i=1,那么第 ii 个居民是司机,否则他是乘客。

保证 ti=1t_i=1ii 的数量恰为 mm

输出格式

一行 mm 个整数 a1,a2,,ama_1,a_2,\cdots,a_m,其中 aia_i 是第 ii 名出租车司机的答案。家坐标第 ii 小的出租车司机编号为 ii

样例 1 输入

3 1
1 2 3 10
0 0 1 0

样例 1 输出

3

样例 1 解释

只有一个出租车司机,这意味着所有 nn 名乘客的订单都会传给他。

样例 2 输入

3 2
2 3 4 5 6
1 0 0 0 1

样例 2 输出

2 1

样例 2 解释

第一个出租车司机住在坐标为 22 的点,第二个出租车司机住在坐标为 66 的点。显然,住在坐标 33 的乘客最接近第一个出租车司机,而住在坐标 55 的乘客最接近的是第二个出租车司机。住在坐标 44 的乘客与第一个和第二个出租车司机的距离相同,但因为第一个出租车司机的坐标较小,所以这个乘客的呼叫会传给第一个出租车司机。

样例 3 输入

1 4
2 4 6 10 15
1 1 1 1 0

样例 3 输出

0 0 0 1

样例 3 解释

有一个乘客,离他最近的是第四个出租车司机。

数据规模与约定

对于 40%40\% 的数据,1n,m10001\leq n,m\leq 1000

对于另外 30%30\% 的数据,司机全部在一个区间内,即存在区间 [l,r][1,n+m][l,r]\subseteq [1,n+m],满足 rl+1=mr-l+1=m,且对于所有 lirl\leq i\leq r,均有 ti=1t_i=1

对于 100%100\% 的数据,1n,m1051\leq n,m\leq 10^51x1<x2<<xn+m1091\leq x_1<x_2<\cdots<x_{n+m}\leq 10^90ti10\leq t_i\leq 1ti=1t_i=1ii 恰有 mm 个。

0830

Not Attended
Status
Done
Rule
IOI
Problem
4
Start at
2025-8-30 14:00
End at
2025-8-30 17:30
Duration
3.5 hour(s)
Host
Partic.
54