n, m = map(int, input().strip().split())
x = list(map(int, input().strip().split()))
taxi = list(map(int, input().strip().split()))
pos = {}
taxnum = 0
for i in range(n + m):
if taxi[i] == 1:
pos[taxnum] = i
taxnum += 1
ans = [0 for i in range(m)]
curr = 0
i = 0
while taxi[i] == 0:
ans[curr] += 1
i += 1
if i >= n + m: break
for j in range(i, n + m):
if taxi[j] == 1:
curr += int(j != i)
continue
if curr + 1 < len(pos):
if x[pos[curr + 1]] - x[j] < x[j] - x[pos[curr]]:
ans[curr + 1] += 1
else:
ans[curr] += 1
else:
ans[curr] += 1
print(*ans)
415. Add Strings | 22. Generate Parentheses |
13. Roman to Integer | 2. Add Two Numbers |
515. Find Largest Value in Each Tree Row | 345. Reverse Vowels of a String |
628. Maximum Product of Three Numbers | 1526A - Mean Inequality |
1526B - I Hate 1111 | 1881. Maximum Value after Insertion |
237. Delete Node in a Linked List | 27. Remove Element |
39. Combination Sum | 378. Kth Smallest Element in a Sorted Matrix |
162. Find Peak Element | 1529A - Eshag Loves Big Arrays |
19. Remove Nth Node From End of List | 925. Long Pressed Name |
1051. Height Checker | 695. Max Area of Island |
402. Remove K Digits | 97. Interleaving String |
543. Diameter of Binary Tree | 124. Binary Tree Maximum Path Sum |
1465. Maximum Area of a Piece of Cake After Horizontal and Vertical Cuts | 501A - Contest |
160A- Twins | 752. Open the Lock |
1535A - Fair Playoff | 1538F - Interesting Function |