Q3 (2 private test cases passed cuz of NZEC but pretty sure the algo is legit)
def dist(eng,router):
return ((eng[0]-router[0])**2 +(eng[1]-router[1])**2)**0.5
engineers = int(input()) #no. of engineers
englst = []
for i in range(engineers): #get in all the engineer locations
coords = [int(i) for i in input().split()]
englst.append(coords)
coords = [int(i) for i in input().split()] #get in the 2 router locations
geo = [coords[0],coords[1]]
air = [coords[2],coords[3]]
queries = int(input())
rangelst = []
for i in range(queries): #get in the queries in power
ranges = [int(i) for i in input().split()]
rangelst.append(ranges)
'''
print('englst',englst)
print("geo {} air {}".format(geo,air))
print("Ranges {}".format(rangelst))'''
#print((dist(englst[0],geo)>rangelst[0][0] and dist(englst[0],air)>rangelst[0][1]) or (dist(englst[0],geo)<=rangelst[0][0] and dist(englst[0],air)<=rangelst[0][1]))
'''
for ranger in rangelst:
for eng in englst:
print(ranger,eng)
'''
for ranger in rangelst:
total = 0
for eng in englst:
if (dist(eng,geo)>ranger[0] and dist(eng,air)>ranger[1]) or (dist(eng,geo)<=ranger[0] and dist(eng,air)<=ranger[1]):
total+=1
print(total)