Welcome to the third Don Mills Open Programming Competition of the 2015-2016 season!

The problem writers this time are k_53P, cheesecake, Xyene and FatalEagle.

This round will be rated for all participants.

Before the contest date, you may wish to check out the tips and help pages.

The contest consists of 6 questions with a wide range of difficulties, and you can get partial marks for partial solutions in the form of subtasks. If you cannot solve a problem fully, we encourage you to go for these partial marks. The difficulty of a problem may be anywhere from CCC Junior to CCO level. You will have 3 hours to complete the contest. After the contest window begins, you may begin at any time. Your personal timer will start counting down, and you will be able to submit until 3 hours from when you started, or until the hard deadline (9PM EST), whichever comes first.

After joining the contest, you proceed to the Problems tab to begin. You can also go to Users if you wish to see the rankings.

We have listed below some advice as well as contest strategies:

  • Start from the beginning. Ties will be broken by the sum of times used to solve the problems starting from the beginning of the contest. The last submission time of your highest score will be used.
  • Remove all extra debugging code and/or input prompts from your code before submitting. The judge is very strict — most of the time, it requires your output to match exactly.
  • Do not pause program execution at the end. The judging process is automated. You should use stdin / stdout to perform input / output, respectively.
  • It is guaranteed that all the problems will be solvable with C++.

At the end of the contest, you may comment below to appeal a judging verdict. In the case of appeals, the decision(s) of DMOJ staff is final.

After the contest finishes, we'll have a optional feedback form we would like you to fill out.

Good luck!


  • 3
     commented on Nov. 25, 2015, 5:55 p.m.

    I have written up a more official explanation for the pretest/systest system. All contestants are encouraged to read it prior to participating. Flat pages do not support comments so feel free to ask any questions here.

    • 0
       commented on Dec. 9, 2015, 9:55 a.m. edited

      I'm supportive with the new pretest system, but could you specify during the contest that we have only passed the pretests and not the actual system tests?

      During this contest, for example P5, the pretest was listed as such, but I remember the two other sample test cases were listed as just "Test Case". When I got AC on all three pretests I thought that I had solved the problem completely, when I had only passed the pretests. This lead me to move on to the next problem without solving the previous one completely.

      • 0
         commented on Dec. 9, 2015, 10:27 a.m. edited

        For clarification, the tests that are labelled as "Pretests" (worth 0 points) during the contest are the sample cases provided in the problem statement. The actual pretests are worth their respective subtask percentages scaled down by a factor of 10. For example, in P5, there were 3 cases, the first being the sample case, awarding 0 points, the second being a pretest for the first subtask, awarding 2 points, and the last being a pretest for the second subtask, awarding 8 points.

        Edit: The explanation has been updated to include this clarification.

        • 0
           commented on Dec. 9, 2015, 10:47 a.m.

          Oh, I see. Thanks.

          • 0
             commented on Dec. 9, 2015, 8:56 p.m.

            After re-reading your comment I realized I probably answered the wrong question. I think you were unclear on which problems were using the pretest/systest format. Problems running the pretest/systest format will always be scored out of 10 during the contest and rescored against the system tests out of 100 afterwards. This will generally include P4, P5, and P6.

    • 2
       commented on Nov. 27, 2015, 11:08 a.m. edited

      Could we decide whether or not to enforce this system on a vote? If so, please vote here. Otherwise if this has already been decided and has no possibility of being changed, that's cool too.

      • 3
         commented on Nov. 28, 2015, 2:47 a.m.

        Thanks for the input!

        Personally, I think the poll would be more insightful if the options were phrased thus:

        • Keep the pretests
        • Scrap the pretests, and go back to the 3-hour window used last season

        Since ultimately, those are the two options. Note that an extended window came at the request of numerous contestants during the last season, but naturally does not come free.

      • 3
         commented on Nov. 27, 2015, 8:11 p.m.

        Specific, constructive feedback would be greatly preferred over a simple yes/no poll. I have listed the reasons for the pretest system in my explanation. So unless the disadvantages outweigh the advantages that we see, the system will remain the same.

        If the complaints are due to the speed of systests in the past two contests, I apologize. The system is still relatively new and we encountered some issues both times. We will learn from our mistakes and it will hopefully be smoother this time.

      • 2
         commented on Nov. 27, 2015, 4:23 p.m.

        While you're at it, you might as well decide the problemset by a vote too.

        There are many good reasons for not disclosing full results during an online contest. Would you rather get one submission per problem with no feedback except samples?

        • 3
           commented on Nov. 27, 2015, 5:14 p.m.

          Tim, I was simply making a suggestion that other users have made continuously over this DMOPC season. If you would rather keep your current contest format, I am in agreement with you. I simply wish to bring to your attention the opinions of DMOJ users.

          • 1
             commented on Nov. 28, 2015, 2:39 a.m.

            I certainly do see the argument against pretests from a contestant's point of view. I do. It can be a downer when a solution you thought was correct times out on the very last testcase. We get that. However, think of the flip side: the adrenaline rush from seeing your solution pass difficult systests.

            In an ideal world, pretests would not be needed because the integrity of contestants would be certain. However, this is unfortunately not the case — just take the last contest as an example, where even with the current system in place a number of users decided to collaborate in an explicitly individual contest.

            We want to keep DMOPCs both fun and rewarding for contestants, and rampant cheating decreases the value of every contestant's achievement during a contest.

            The alternative to pretesting (while maintaining the 9-hour window which was frequently asked for during the last season) is a extensive review period after each contest where contestant submissions are manually cross-checked for similarity with each other. Given an average of about 1000 submissions per contest, that would result in final rankings being published days after a contest, as well as necessitating dozens of hours on the part of contest setters to screen for cheating.

            In an otherwise lose-lose scenario, pretests compromise between rankings actually meaning something and ease of contest-setting. We could remove pretests. But at that point, we might as well just be releasing six problems every month and nothing else — it's not like rankings will mean anything anymore.

            • -14
               commented on Nov. 28, 2015, 2:39 p.m. edit 2


        • 1
           commented on Nov. 27, 2015, 4:50 p.m.

          Oh god no. Not the Romanian style plz.