Canadian Computing Competition: 2009 Stage 1, Senior #5
Bob is sitting at home with his computer. He would like to experience more social interaction, so he is planning a trip to a coffee shop with his computer.
Bob has lots of data about wireless networks and coffee shops in the city. In Bob's city, there is one coffee shop at every intersection of streets. Specifically, Bob happens to live in a city with streets that run east and west, and streets that run north and south. As an added benefit, the distance between consecutive parallel streets is metre (it is a very compact city).
It also turns out that inside of the coffee shops, there is a wireless network station. Each wireless network station will have a particular bitrate and can reach metres from the coffee shop. In other words, a wireless network station from one coffee shop forms a circle with radius centered at that particular coffee shop. Moreover, if someone is at distance , the wireless network would be available, but if someone is at a distance larger than , they cannot access that wireless point.
You can assume that each coffee shop has at most one wireless network stationed in it, but that multiple wireless networks may be available while sitting in that one coffee shop, due to the proximity of other wireless network stations.
Bob has a special device in his computer that can use all of the available bitrates of as many wireless networks as he can connect to.
Bob would like to find out the maximum bitrate he can obtain, and how many coffee shops would have that maximum capacity.
Input Specification
On the first line of input, you will be given the integer , the number of east-west streets.
On the second line of input, you will be given the integer , the number of north-south streets.
On the third line of input, you will be given the integer , the number of coffee shops with a wireless network. On the next lines, you will have 4 integers per line.
The first integer on each line represents the north-south street on which the coffee shop is located, where . The second integer, , on each line represents the east-west street on which the coffee shop is located, where . The third integer, , on each line represents the radius of the wireless network from this particular coffee shop. The fourth integer, , on each line represents the bitrate of the wireless network from this particular coffee shop.
Output Specification
The output will be two lines long. The first line of output will be the integer representing the maximum bitrate that can be obtained over all coffee shops. The second line of output will be the number of coffee shops where this maximum bitrate can be obtained.
Sample Input
3
5
3
1 3 2 5
3 1 2 7
5 1 1 5
Sample Output
12
5
Explanation
In the figure below, notice that the five coffee shops/intersections marked with a dark circle have total bitrates of .
Comments
need help
how to do 2d difference array for circles?
If you can do this problem
with time per circle, you can figure out a way to get updates with 1D difference arrays for this problem.
Do you really mean 1D array???
Considering the massive test cases in this question, is it solvable in python?
Yes, just use PyPy.
Write a solution to find out!
Challenge accepted!
Sourspinach - 956kb Everyone else - 115mb dat difference though