The DMOJ is a modern contest platform and archive of programming problems. It's also entirely open source.
We host problems from past CCC, CCO, COCI, IOI and JOI competitions, as well as various problems from other sources. We also run our own DMOJ Monthly Open Programming Competition (DMOPC) for anyone interested in competitive programming.
The DMOJ was inspired by the PEG online judge.
We also ask that new users read the guidelines on participating in discussions in the community.
I got some feedback from the judge that I don't understand.
Check out our page on status codes and their explanations.
My points don't add up!
The DMOJ uses a weighted points system - solving a problem worth, say 5 points, doesn't necessarily mean that your PP will go up by 5 points. Rather, your hardest problems are worth more, and your easier problems are worth less. This is to encourage you to try the harder problems.
But what if I can't solve hard problems yet?
There is also a bonus points system, based on how many problems you've attempted. For more information, see this blog post.
How do I get a coloured username?
Simple! Just write a rated contest! These contests can easily be distinguished by the
The colours correspond to the following ratings:
Finally, a black username is for administrators, like, , , , and .
Help! I got an Internal Error!
Usually, an internal error will not go away in seconds. The administrators and/or problem setters will generally be notified and will usually post a comment on the problem once it has been fixed.
Until then, we encourage you to not submit. Doing so will only create more error messages on our end, and might prevent us from finding other problems that are also broken.
What does -9999 score on a contest mean?
It means that you have been suspected of cheating on a contest. If you believe that this judgement has been made in error, you are encouraged to email us at
contact -at- dmoj.ca or join the Discord.
I have an issue, how can I get in contact with an administrator?
My school or organization is not listed. How can I add it?
Get in touch with an administrator and we'll be happy to add it for you, see above.
Can I contribute to the DMOJ?
Some problems I’d like to practice on are missing!
You may contact a moderator if you’d like a contest added to the judge, or you may add them yourself (see below) — the DMOJ problem format is well documented. In either case, please contact a moderator to get started.
I would like to set a problem on the DMOJ. How can I do so?
Can I host a contest on the DMOJ?
Yes, and we’d love to help you get it up and running! Experienced or enthusiastic coders can contact us to host their own public contest free of charge on the DMOJ. If you're an educational organization and would like to host a private contest for your members, we can help you out. Note, however, that there is a small fee due to the costs of supporting the DMOJ. In either case, please contact a moderator.
Can I set up the DMOJ for my own school?
Yes! — but read this first.
What does DMOJ stand for?
It stands for DMOJ: Modern Online Judge.
Below are the contacts for the staff members who actively moderate the site.
For general purposes, we request that you please email
contact -at- dmoj.ca.