CCC '10 S1 - Computer Purchase

View as PDF

Submit solution

Points: 5
Time limit: 2.0s
Memory limit: 64M

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: 2010 Stage 1, Senior #1

In order to increase your performance on the ABC (Another Buying Contest), you decide that you need a new computer. When determining which computer to buy, you narrow your search categories to:

  • RAM (in gigabytes), denoted as R;
  • CPU speed (in megahertz), denoted as S;
  • disk drive space (in gigabytes), denoted as D.

You perform some analysis and determine that the most preferred machine is the machine that has the largest value of the formula 2R + 3S + D.

Your task is to read a given list of computers and output the top two computers in order of preference, from highest preference to lowest preference.

Input Specification

The first line of input will be an integer n (0 \le n \le 10\,000). Each of the remaining n lines of input will contain a computer specification. A computer specification is of the form:

  • computer name (a string of less than 20 characters)
  • the RAM available (an integer R with 1 \le R \le 128)
  • the CPU speed (an integer S with 1 \le S \le 4000)
  • the disk drive space (an integer D with 1 \le D \le 3000)

There is one space between the name, RAM, CPU speed and disk drive space on each line.

Output Specification

The output is the name of the top two preferred computers, one name per line, sorted in decreasing order of preference. If there is a tie in the rankings, pick the computer(s) whose name(s) are lexicographically smallest (i.e., Apple is smaller than Dell). If there is only one computer, output that computer on one line (i.e., do not print it twice).

Sample Input

ABC 13 22 1
DEF 10 20 30
GHI 11 2 2
JKL 20 20 20

Output for Sample Input


Explanation of Output for Sample Input

Computer ABC has a computed value of 93. Computer DEF has a computed value of 110. Computer GHI has a computed value of 30. Computer JKL has a computed value of 120. Therefore, computer JKL is the most preferred, followed by computer DEF.


  • -4
    potato_nuggetz  commented on July 5, 2020, 3:42 p.m.

    mfw you measure cpu speed in mhz

    • 4
      noYou  commented on July 10, 2020, 12:06 p.m.

      When you forget the problem you're doing is from 2010

  • -4
    Orion222  commented on May 15, 2020, 12:31 p.m.

    bruh why am i getting testcase 1 wrong and testcase 9 on IR

    • 2
      Kirito  commented on May 16, 2020, 5:17 p.m.

      Consider the case

      ABC 13 22 1

  • -1
    chessdongdong  commented on Feb. 6, 2020, 4:49 p.m.

    What is Test Case #2? My code is correct (C#) except for Test Case #2, which is IR, out of range. Can someone help me please. Thanks.

  • -2
    kevinlu1248  commented on Feb. 2, 2020, 7:47 p.m.

    Does case matter for lexicographically? Are "ABC" and "abc" the same?

  • 0
    Charles232  commented on Jan. 21, 2019, 9:49 p.m.

    what if all of the scores are the same??? do we still lexicographically print it out???

    • 3
      Relativity  commented on Jan. 22, 2019, 9:43 a.m.

      The output is the name of the top two preferred computers, one name per line, sorted in decreasing order of preference. If there is a tie in the rankings, pick the computer(s) whose name(s) are lexicographically smallest.

  • 3
    ThatGuyOnTheStreet  commented on Nov. 11, 2018, 3:57 p.m.

    Two of the test cases are the same; 5 and 6.

    • -10
      Arihan10  commented on Jan. 22, 2019, 1:10 p.m.

      This comment is hidden due to too much negative feedback. Click here to view it.

      • 23
        Robloxian  commented on Jan. 22, 2019, 5:13 p.m.

        Before posting, ask yourself:

        Will someone reading my comment a year from now find it useful? If not, then you probably shouldn't post it. Will I regret posting this comment in five minutes? If so, you shouldn't post it. Listen to yourself. Is my comment meaningful? Comments like "uw0tm8" are unwelcome. Is the thread I'm commenting on longer than the problem itself? If it is, do you really have something of value to add? This is not to say that jokes or witty comments are unwelcome. They're fine. If you think your comment relates to the problem and is funny for the majority of people who will read it (i.e. not an inside joke only you and your friend will understand — we're not Facebook), then by all means post ahead! If you can brighten someone's day while remaining even remotely on topic, that's great.

        And these are just guidelines. If you feel really justified in posting something, use your judgement.

        • 7
          Arihan10  commented on Jan. 22, 2019, 8:39 p.m.

          Ok. Thanks. Will keep that in mind.

  • -4
    bobhob314  commented on Dec. 24, 2014, 9:34 p.m.

    For Test Case 8, no spoilers but I know what the test case is, and there is no specification on what to print for that input number. What is the output supposed to be? Thanks, bob

    • 6
      FatalEagle  commented on Dec. 24, 2014, 9:40 p.m.

      You don't have to print anything if n = 0

      • 19
        zys5945  commented on Oct. 1, 2015, 11:47 a.m.

        Should change the problem description from 0 < N < 10000 to 0 <= N < 10000