Contest Creation Guide


Thanks for choosing the DMOJ for hosting your contest! As our goal is to provide high-quality problems, there are some simple rules contest organizers will have to follow to ensure a successful contest:


Problem Statements:

  1. Ensure the problem-statements are of the appropriate format. You should refer to past CCC and DMOPC problems for inspiration and follow their format. We will gladly provide you with assistance on the formatting syntax.

  2. Ensure they are clear and concise. You’re not writing an essay. Don’t make a problem seem difficult by making it overly verbose – these are considered to be low quality problems.

    “Aim for brevity while avoiding jargon.”

    • Edsger Dijkstra
  3. Be explicit. Don’t bury important details in the middle of a dense paragraph or leave details to be inferred. Your goal is to test the skill of your participants – not their patience.

  4. There must always be a Sample Input/Output. Unless the output is trivial, you should explain the output.

  5. Each variable must have constrains given. For example, if there are N people in your problem, specify how large N can be.

  6. Problem statements must have correct spelling and grammar. As well, they may not contain offensive or inappropriate language, content, or anything that violates our Terms of Service.

  7. When sending us the problem statements, you should briefly describe your intended solution to us (example: use Dijkstra’s shortest path algorithm). This will help us in determining the difficulty and point-value of your problem.


Test Data:

  1. It is your responsibility to provide us with correct and valid test data that reflects the problem statement at least 3 days before the contest start-time.

  2. We will notify you once the test-data has been uploaded, and we fully expect you to submit your correct solution right away.

  3. Input test cases must have the extension .in while output test cases must have the extension .out, in the format X.Y.in or X.Y.out, where X is the problem's code or short name and Y is the test case number (starting from 1).

  4. Ensure there is at least one hard test case where all your variables are at their upper-bounds.

  5. To ensure the integrity of your test data, we recommend solving your problem with slower algorithms to ensure that wrong solutions don’t pass, which can suddenly make your contest seem much easier than intended (example: CCC ’15 S3).

  6. Once the contest begins there’s no going back (you cannot change the test-data or problem statement, other than by adding clarifications), so ensure your test cases represent your intended difficulty and that your time and memory limits are reasonable (so that a wrong C++ solution won’t pass but a correct Python solution will).


During The Contest:

If there are any comments asking for clarifications, it is your responsibility to answer them. Feel free to add a clarification to the problem if necessary and note that adding hints is strongly discouraged as it is unfair to those who attempted the problem beforehand.


Important Notes:

  • We will post your upcoming contest only once we receive your tentative problem statements.
  • Once the contest begins, you cannot move or extend the contest (unless you have a valid reason). If you wish to change the contest time beforehand, please tell us at least 3 days before its initial start-time.
  • For the contest-description, you should specify who your target audience is. For example, if your contest contains only 3-7 point problems, then it is intended for beginners.

Solutions (optional):

To encourage more people to write your future contests we strongly encourage you to post solutions to your problems the day after the contest ends. Refer to our solutions of past CCC and DMOPC problems for reference.


We understand that while the above rules may seem daunting, they are necessary to assure others that your contest will be enjoyable and add to the DMOJ community.

We’ll gladly provide you with assistance in case you are having difficulty, but if we conclude that you aren’t planning on running a quality contest, we reserve the right to cancel your contest, modify/delete your problems and/or test-data at any time.

If you have any questions or are interested in hosting your contest on DMOJ, contact us at [email protected]

Thank you for your contributions to the DMOJ community,

— The DMOJ Staff