Responsive image

问题 D: 倒垃圾

问题 D: 倒垃圾

时间限制: 1 Sec  内存限制: 128 MB
提交: 0  解决: 14
[提交][状态][讨论版][命题人:]

题目描述

一条街道可以看作一个数轴。

街道上住着 nn 个居民并设有 mm 个垃圾桶,每个居民的住所或垃圾桶占据一个位置。

已知,这 n+mn+m 个位置两两不同。

每个居民每天都会前往距离自己家最近的垃圾桶处倒垃圾。

如果这样的垃圾桶不唯一,则居民会优先选择前往位置坐标更小的垃圾桶处倒垃圾。

请你计算,对于每个垃圾桶,每天有多少居民在该垃圾桶处倒垃圾。

输入描述

第一行包含两个整数 n,mn,m

第二行包含 n+mn+m 个整数 x1,x2,…,xn+mx1,x2,…,xn+m,表示所有居民住所以及垃圾桶的位置坐标。

第三行包含 n+mn+m 个整数 t1,t2,…,tn+mt1,t2,…,tn+m,如果 ti=1ti=1,则表示第 ii 个位置坐标处是垃圾桶,如果 ti=0ti=0,则表示第 ii 个位置坐标处是居民住所。

输入保证,满足 ti=1ti=1 的 ii 的数量为 mm

输出描述

不妨按照位置坐标从小到大的顺序,将 mm 个垃圾桶编号 1∼m1∼m

请你在一行中输出 mm 个整数 a1,a2,…,ama1,a2,…,am,其中 aiai 表示每天在第 ii 个垃圾桶处倒垃圾的居民数量。

样例输入

3 1
1 2 3 10
0 0 1 0

样例输出

3

提示

二分或者双指针1≤n,m≤105

[提交][状态]
ACM算法攻关部