CCC '24 J3 - Bronze Count

View as PDF

Submit solution


Points: 5 (partial)
Time limit: 3.0s
Memory limit: 1G

Problem types
Canadian Computing Competition: 2024 Stage 1, Junior #3

After completing a competition, you are struck with curiosity. How many participants were awarded bronze level?

Gold level is awarded to all participants who achieve the highest score. Silver level is awarded to all participants who achieve the second highest score. Bronze level is awarded to all participants who achieve the third highest score.

Given a list of all the scores, your job is to determine the score required for bronze level and how many participants achieved this score.

Input Specification

The first line of input contains a positive integer, N, representing the number of participants.

Each of the next N lines of input contain a single integer representing a participant's score.

Each score is between 0 and 75 (inclusive) and there will be at least three distinct scores.

The following table shows how the available 15 marks are distributed:

Marks Description Bound
6 The scores are distinct and the number of participants is small. N \le 50
7 The scores might not be distinct and the number of participants is small. N \le 50
2 The scores might not be distinct and the number of participants could be large. N \le 250 \,000

Output Specification

Output a non-negative integer, S, and a positive integer, P, separated by a single space, where S is the score required for bronze level and P is how many participants achieved this score.

Sample Input 1

4
70
62
58
73

Output for Sample Input 1

62 1

Explanation of Output for Sample Input 1

The score required for bronze level is 62 and one participant achieved this score.

Sample Input 2

8
75
70
60
70
70
60
75
70

Output for Sample Input 2

60 2

The score required for bronze level is 60 and two participants achieved this score.


Comments


  • 0
    IsaZhou  commented on July 29, 2024, 6:59 a.m.

    Can someone tell me why my code doesn't work? I tested on Jupyter and it worked fine.


    • 0
      hyong123  commented on Aug. 18, 2024, 4:04 a.m. edited

      The code is correct. Just not efficient enough.

      1. you are probably performing sort on an unnecessary large number of items
      2. Using max() on an already sorted list is wasteful
      3. Removing items from a list other than the end is considered inefficient.
      4. Using count is probably not the best way for a sorted list.