About


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?

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 rated tag in the contest list, and will also say so on the contest page.

The colours correspond to the following ratings:

Ratings Chart
<1000Newbie
1000-1199Amateur
1200-1499Expert
1500-1799Candidate Master
1800-2199Master
2200-2999Grandmaster
≥3000Target

Finally, a black username is for administrators, like quantum, Xyene, FatalEagle, WallE256, and Kirito.

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 Slack.

I have an issue, how can I get in contact with an administrator?

Administrators of DMOJ may be reached through Slack. Alternatively, you may use the email address contact -at- dmoj.ca. If you have an issue, don’t hesitate to get in touch.

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?

Of course! There’s plenty to be done, from translating the site to reporting and fixing bugs, as well the most important task of all: adding more problems! (see below)

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?

As a security precaution, you must have two-factor authentication enabled. Afterwards, you should read through this document and complete the Problem Setter Quiz.

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?

So you want to set up a clone of the DMOJ, great — but read this first.

Moderation Team

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.