线性分类器实现2分类
#202006-1
#线性分类器
nm = input().split()
n = int(nm[0])#点的个数
m = int(nm[1])#查询的个数
datas = []
for i in range(n):
data = input().split()
datas.append(data)
lines = []
for i in range(m):
line = input().split()
line = [int(j) for j in line]
lines.append(line)
for i in range(m):
types_data_up =[]
types_data_down = []
for j in range(n):
#第i条线的分类结果:设置在线上面的为第一类,下面的为第2类
if (lines[i][0] + lines[i][1]*int(datas[j][0]) + lines[i][2]* int(datas[j][1])) > 0:
types_data_up.append(datas[j][2])
else :
types_data_down.append(datas[j][2])
#print(types_data_up)
#print(types_data_down)
if len(types_data_up) == 0 or len(types_data_down) == 0:
print("No")
#必须将两个条件写全,否则为55 分,会导致有几个点被分错,一边全是正确的,一边有分错的
elif types_data_up.count(types_data_up[0]) == len(types_data_up) and types_data_down.count(types_data_down[0]) == len(types_data_down):
print("Yes")
else:
print("No")