题目描述
在T城有一条很长的路,路上有n位居民和m家商场,每个居民和商场的位置各不相同,
这座域的居民都喜欢节约时间,所以他们只会送择去相距自己最近的一个商场购物,
如果有两个商场离一位居民的距离相同,那么他会选择坐标更小的那一个
输入描述
第一行包含两个正整数n和m,分别表示居民的数量和商城的数量
第二行包含n+m个正整数,第i个数xi表示第i个位置的坐标,数据保证每个xi互不相同
第三行包含n+m个正整数,第i个数ti表示第i个位置的是居民还是商城,如果ti=0表示居民,如果ti=1表示商城
输出描述
输出一行m个数,第i个数表示选择第i个商城的人数
输入数据
2 3
1 2 3 4 5
1 0 1 0 1
输出数据
1 1 0
def main():
A = list(input())
for a in A:
if a == " ":
A.remove(" ")
n = int(A[0])
m = int(A[1])
sum = n + m
i = 0
B = list(input())
for b in B:
if b == " ":
B.remove(" ")
C = list(input())
for c in C:
if c == " ":
C.remove(" ")
dict1 = {}
while i < sum:
list_dict = [i + 1, C[i], 0]
dict1[i] = list_dict
i += 1
keys = dict1.keys()
people = []
shopping = []
for key in keys:
if dict1[key][1] == "0":
people.append(dict1[key][0])
if dict1[key][1] == "1":
shopping.append(dict1[key][0])
for x_people in people:
abs_num = []
num = []
for x_shopping in shopping:
abs_num.append(abs(x_people - x_shopping))
num.append(x_people - x_shopping)
for key in keys:
if dict1[key][0] == int(shopping[abs_num.index(min(abs_num))]):
dict1[key][2] = 1
for key in keys:
if dict1[key][1] == "1":
print(dict1[key][2], end="")
if __name__ == '__main__':
main()