This question evaluates proficiency in spatial reasoning, Euclidean distance computation, and set-based filtering to determine whether members have required specialty access, and it tests algorithmic implementation and data-structure usage as a practical application within the Coding & Algorithms domain.

Oscar wants to ensure that every insurance member has adequate access to in-network healthcare providers within a reasonable travel distance.
You are given:
id
: an integer provider ID
specialty
: a string (e.g.,
"Cardiology"
,
"Dermatology"
)
location
: a 2D coordinate
(x, y)
representing the provider’s location
id
: an integer member ID
location
: a 2D coordinate
(x, y)
representing the member’s location
required_specialties
: a list of strings indicating the specialties this member needs
max_distance
(float or integer), which is the maximum allowed travel distance.
Assume Euclidean distance between two points (x1, y1) and (x2, y2):
A member has adequate coverage if, for every specialty in their required_specialties, there exists at least one provider with that specialty whose distance from the member is less than or equal to max_distance.
A member lacks adequate coverage if there is at least one required specialty for which no such provider exists within max_distance.
Task:
Write a function that, given providers, members, and max_distance, returns a list of the IDs of all members who lack adequate coverage.
You may return the member IDs in any order.
Example
providers = [
{"id": 1, "specialty": "Cardiology", "location": (1, 2)},
{"id": 2, "specialty": "Dermatology", "location": (3, 4)},
]
members = [
{"id": 101, "location": (2, 3), "required_specialties": ["Cardiology", "Dermatology"]},
{"id": 102, "location": (10, 10), "required_specialties": ["Cardiology"]},
]
max_distance = 5
Distances:
So member 101 has adequate coverage for all required specialties, but member 102 does not.
Expected output:
[102]