CCC '09 S5 - Wireless

View as PDF

Submit solution

Points: 15 (partial)
Time limit: 2.0s
Memory limit: 256M

Problem type
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, CommonLisp, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Intercal, Java, JS, Kotlin, Lisp, Lua, Nim, ObjC, OCaml, Octave, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig
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 M streets (1 \le M \le 30\,000) that run east and west, and N streets (1 \le N \le 1\,000) that run north and south. As an added benefit, the distance between consecutive parallel streets is 1 metre (it is a very compact city).

It also turns out that inside K (1 \le K \le 1\,000) of the coffee shops, there is a wireless network station. Each wireless network station will have a particular bitrate B (1 \le B \le 1\,000) and can reach R metres (1 \le R \le 30\,000) from the coffee shop. In other words, a wireless network station from one coffee shop forms a circle with radius R centered at that particular coffee shop. Moreover, if someone is at distance R, the wireless network would be available, but if someone is at a distance larger than R, 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 M, the number of east-west streets.
On the second line of input, you will be given the integer N, the number of north-south streets.
On the third line of input, you will be given the integer K, the number of coffee shops with a wireless network. On the next K lines, you will have 4 integers per line.

The first integer x on each line represents the north-south street on which the coffee shop is located, where 1 \le x \le N. The second integer, y, on each line represents the east-west street on which the coffee shop is located, where 1 \le y \le M. The third integer, R, on each line represents the radius of the wireless network from this particular coffee shop. The fourth integer, B, 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 12.

CCC problem statements in large part from the PEG OJ


Comments


  • 8
    pro  commented on Jan. 8, 2018, 11:09 a.m.

    need help

    how to do 2d difference array for circles?


    • 3
      noYou  commented on July 15, 2020, 3:27 p.m.

      If you can do this problem

      https://dmoj.ca/problem/ccc08s2 with O(N) time per circle, you can figure out a way to get O(N) updates with 1D difference arrays for this problem.


  • 7
    moladan123  commented on Dec. 20, 2015, 10:00 a.m.

    Considering the massive test cases in this question, is it solvable in python?


    • 6
      d  commented on Dec. 20, 2015, 10:47 p.m.

      Yes, just use PyPy.


    • 12
      bobhob314  commented on Dec. 20, 2015, 1:16 p.m.

      Write a solution to find out!


      • 8
        moladan123  commented on Dec. 20, 2015, 1:37 p.m.

        Challenge accepted!


  • 12
    zys5945  commented on Dec. 16, 2015, 8:40 p.m.

    Sourspinach - 956kb Everyone else - 115mb dat difference though