Given n coordinate (x, y) of points on 2D plane and Q queries. Each query contains an integer r, the task is to count the number of points lying inside or on the circumference of the circle having radius r and centered at the origin.
Input : n = 5 Coordinates: 1 1 2 2 3 3 -1 -1 4 4 Query 1: 3 Query 2: 32 Output : 3 5 For first query radius = 3, number of points lie inside or on the circumference are (1, 1), (-1, -1), (2, 2). There are only 3 points lie inside or on the circumference of the circle. For second query radius = 32, all five points are inside the circle.
The equation for the circle centered at origin (0, 0) with radius r, x2 + y2 = r2. And condition for a point at (x1, y1) to lie inside or on the circumference, x12 + y12 <= r2.
A Naive approach can be for each query, traverse through all points and check the condition. This take O(n*Q) time complexity.
An Efficient approach is to precompute x2 + y2 for each point coordinate and store them in an array p. Now, sort the array p. Then apply binary search on the array to find last index with condition p[i] <= r2 for each query.
Below is the implementation of this approach:
Time Complexity: O(n log n) for preprocessing and O(Q Log n) for Q queries.
This article is contributed by Anuj Chauhan. If you like GeeksforGeeks and would like to contribute, you can also write an article using contribute.geeksforgeeks.org or mail your article to firstname.lastname@example.org. See your article appearing on the GeeksforGeeks main page and help other Geeks.
Please write comments if you find anything incorrect, or you want to share more information about the topic discussed above.
Attention reader! Don’t stop learning now. Get hold of all the important DSA concepts with the DSA Self Paced Course at a student-friendly price and become industry ready.
- Coordinates of rectangle with given points lie inside
- Find minimum radius such that atleast k point lie inside the circle
- Count of obtuse angles in a circle with 'k' equidistant points between 2 given points
- Check if a circle lies inside another circle or not
- Check whether two points (x1, y1) and (x2, y2) lie on same side of a given line or not
- Equation of circle when three points on the circle are given
- Count Integral points inside a Triangle
- Find if a point lies inside, outside or on the circumcircle of three points A, B, C
- Check if the given point lies inside given N points of a Convex Polygon
- Generate all integral points lying inside a rectangle
- Check if a given circle lies completely inside the ring formed by two concentric circles
- Number of Integral Points between Two Points
- Minimum number of points to be removed to get remaining points on one side of axis
- Ways to choose three points with distance between the most distant points <= L
- Find the point on X-axis from given N points having least Sum of Distances from all other points
- Non-crossing lines to connect points in a circle
- Circle and Lattice Points
- Angular Sweep (Maximum points that can be enclosed in a circle of given radius)
- Check whether it is possible to join two points given on circle such that distance between them is k
- Number of quadrilateral formed with N distinct points on circumference of Circle