CCC '00 S1 - Slot Machines

View as PDF

Submit solution

Points: 5
Time limit: 1.0s
Memory limit: 16M

Problem type
Canadian Computing Competition: 2000 Stage 1, Junior #3, Senior #1

Martha takes a jar of quarters to the casino with the intention of becoming rich. She plays three machines in turn. Unknown to her, the machines are entirely predictable. Each play costs one quarter. The first machine pays 30 quarters every 35^{th} time it is played; the second machine pays 60 quarters every 100^{th} time it is played; the third pays 9 quarters every 10^{th} time it is played.

Input Specification

Your program should take as input the number of quarters in Martha's jar (there will be at least one and fewer than 1000), and the number of times each machine has been played since it last paid.

Output Specification

Your program should output the number of times Martha plays until she goes broke.

Sample Input


Sample Output

Martha plays 66 times before going broke.


  • 0
    Maxp070704  commented on April 27, 2021, 9:56 a.m.

    I am getting WA on the last question, can anyone take a look and give me a hint?

    • 2
      Badmode  commented on April 27, 2021, 12:29 p.m.

      I'm looking at your latest submission -

      When Martha wins on a slot machine, lines 23-29 get skipped, thus not adding to the amount of times that slot machine is played. Code it so even when Martha wins, that slot machine's counter (m1, m2, or m3) still gets added by one.

      If you need any more help, consider asking on Slack as you will get better and faster answers.

      • 0
        Maxp070704  commented on April 27, 2021, 6:46 p.m.

        Thank you

  • 0
    Marshmellon  commented on April 11, 2021, 1:11 p.m. edit 7

    When I use quarters > 0, I get WA 39 on test cases 3 and 4, and when I use quarters >= 0 I get WA 39 on test cases 2 and 3. Any tips would be greatly appreciated!

    Edit: Figured it out. For those who are also having this issue, a hint is to check if your loop exits at all the places needed.

  • 1
    cjord1  commented on April 8, 2021, 10:23 a.m.

    Why am I getting the last case wrong? Any help would be appreciated

    • 3
      Badmode  commented on April 8, 2021, 10:55 a.m.

      In your latest submission, the bug is in line 15 and 16. The first machine seems to be giving out more quarters than it recieves.

      • 0
        cjord1  commented on April 8, 2021, 11:03 a.m.

        Oh my god thank you that's such a silly mistake

  • 1
    Leaderleade  commented on Feb. 7, 2021, 3:55 p.m.

    PYPY3 failed initializing... Was that a problem with my code or with the judge?

    • 1
      Kirito  commented on Feb. 7, 2021, 4:07 p.m.

      Memory limit is too low for PYPY3, use Python instead.

  • 1
    kresteodymium  commented on Feb. 5, 2021, 6:09 p.m.

    If I understand the question properly, Martha plays on the first machine first, then the second machine, and lastly the third machine and then plays the first machine, right? I'm sorry, I was just slightly confused.

    Much appreciated, kresteodymium

    • 2
      chenxietconsulting  commented on Feb. 21, 2021, 11:40 a.m.

      the first number is the number of quarters. the rest are which number she is currently on.

  • 0
    Dav_Did  commented on Jan. 30, 2021, 8:28 p.m.

    Martha intend to become rich by playing on slots machine the whole day.

  • 5
    calluo  commented on Oct. 4, 2020, 6:05 p.m.

    A common problem that those using a while loop may encounter is that Martha's money goes to zero before she gets paid, even though she's supposed to earn money from the machine. The while loop is exited, and your output is incorrect.

  • 2
    Orion222  commented on March 11, 2020, 8:55 p.m. edit 2

    Why do I keep getting 39 for test cases 3 and 4?

    edit: nvm i just redid the whole question and got perfect

  • 6
    cathysun2004  commented on Jan. 10, 2020, 1:22 a.m. edit 2

    Does she alternates between each machine or she just plays it all before going broke?

    • 0
      Neon  commented on Feb. 8, 2020, 11:39 a.m. edited

      "She plays 3 machines in turn"

      • 1
        OneYearOld  commented on Oct. 29, 2020, 8:05 a.m.

        In case you don't know what "in turn" means, she plays the 1st machine, then the 2nd, then the 3rd, and then the 1st and so on.

  • 2
    Julien  commented on Jan. 9, 2020, 8:54 p.m. edited

    On test cases 2 and 3, I seem to be getting 39. Does anyone know what I might be doing wrong?

    • 1
      julian34  commented on April 18, 2021, 7:01 p.m.

      You need to check whether Martha is broke every time she plays. Note that she plays three times with each iteration of the loop, so a simple while (bal > 0) will not suffice.

      If you get WA and have 39 as your output, it's likely that you're not checking often enough. 😉

    • 0
      Orion222  commented on March 11, 2020, 8:54 p.m. edited

      SAME BRO

  • 4
    bt7274  commented on Nov. 8, 2019, 8:58 p.m. edited

    Can anyone give a description of the four numbers in the sample input

  • 1
    zurtar  commented on April 28, 2019, 11:15 p.m. edit 2

    I am having issues with the 4th test cases I cant seem to figure out what the issue is if anyone has some advice that would be great. Test case #3 is outputting 29

    • 3
      Dingledooper  commented on April 29, 2019, 12:55 a.m. edited

      The way you are checking when a machine pays is incorrect. Try checking your logic there.

      • 3
        zurtar  commented on April 29, 2019, 12:31 p.m. edited

        Thank you! Was able to figure it out with your help.

  • 2
    alirezaazimitabrizi  commented on Feb. 16, 2019, 1:13 p.m. edited

    I don't know why but I get the third case wrong for some reason.

    • 2
      zurtar  commented on April 28, 2019, 10:45 p.m. edited

      any chance you figured out what that issue was? Im running into the same one

  • -7
    Arihan10  commented on Jan. 17, 2019, 12:03 p.m. edited

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

    • 2
      Neon  commented on Feb. 8, 2020, 12:12 p.m. edited

      try importing input from sys.stdin

      from sys import stdin
      input = stdin.readline
      x = int(input())

    • 0
      magicalsoup  commented on Jan. 17, 2019, 12:55 p.m. edited

      your logic just isn't right, you should debug your code yourself and try for at least a couple of hours before posting a comment

  • -1
    NathanHuang  commented on Oct. 9, 2018, 8:26 a.m. edited

    What does TLE mean?

  • 3
    Lemonsity  commented on Sept. 14, 2018, 10:05 a.m. edit 3

    My program runs fine for the first four question, but on question five, my program returns 5718 times. I know that is probably wrong, given how big the number is. Can anyone help me? The program isn't that efficient yet, but I just want to get it working for now.

    • 3
      Rimuru  commented on Sept. 14, 2018, 12:20 p.m. edited

      Your error is when the slots repeat (1st slot 35th time, 2ndd slot 100th time, 3rd slot 10th time)

  • 1
    1015449  commented on April 5, 2018, 8:45 a.m. edited

    My code works and I feel like it should be fast enough but the 5th test is still running too slow, any suggestions to make it faster

  • 3
    JJ_G4M3R  commented on Nov. 26, 2017, 6:34 p.m. edit 6

    I keep getting 0 on 2000 questions. Even though I tested my code before I submit, the output starts cutting off every time. Why is this happening?

    Example) This is what my clipped output looks like:

    How many quarters does Martha have in the jar? How many times ha

    • 0
      Xyene  commented on Nov. 26, 2017, 6:43 p.m. edited

      Your output (clipped)

      ...implies your output will be clipped when displayed on the site, specifically to 64 characters.

      • 0
        JJ_G4M3R  commented on Nov. 26, 2017, 6:53 p.m. edited

        What am I getting wrong in the questions then?

        • -3
          aeternalis1  commented on Nov. 26, 2017, 6:57 p.m. edited

          The judge looks for exact matching output, and so you should remove or comment out input prompts. Follow the output specification.

          • 2
            JJ_G4M3R  commented on Nov. 26, 2017, 7:08 p.m. edited

            Okay, thank you. I was doing it to Waterloo's formatting.

  • 1
    CarlZCoc  commented on July 16, 2017, 9:13 p.m. edited

    I think my code is good, but the second test run isn't working. My code outputs 38? Does anyone else have a similar problem

    • 1
      Dordor1218  commented on Feb. 4, 2018, 6:15 p.m. edited

      I feel like my program is good but the last test run is wrong?

    • 2
      wleung_bvg  commented on July 16, 2017, 9:30 p.m. edited

      You rotate the machine immediately so the 2nd machine is the machine Martha goes to at the start. Instead, you should rotate the machine after the first round so that the 1st machine is the machine Martha goes to at the start.

      • 2
        nikos  commented on Sept. 29, 2017, 7:21 p.m. edited

        What do you mean "rotate"?