In light of recent events, DMOJ administrators have decided to not process any support requests about account recovery, starting January 1st, 2022. If you lose your second authentication factor, you must use the recovery code generated when you enabled two-factor authentication (2FA). If you do not have a recovery code, access to your account will be lost forever. This is done purely for security reasons, to protect you from social engineering attacks.
Two-factor authentication is designed to protect an account even when the password (or equivalently, the email with which the user could reset it) is compromised. Therefore, a genuine recovery request is indistinguishable from the following attack:
Suppose you are Alice, and an attacker Mallory has somehow gained access to your email. Then, Mallory can send an email to the DMOJ admins, claiming that she is Alice, has lost her phone, and begs the admins to reset 2FA. Since the admins do not know either Alice or Mallory in real life, it is conceivable that an admin could be tricked into believing Mallory is really Alice and granting the request. Now, Mallory obtains access to the account Alice, even though 2FA is supposed to prevent her from doing so.
Therefore, the only option DMOJ admins have to safeguard your account security is to ignore all support requests about account recovery. Please keep your recovery codes safe. If you don't know them, you can go to the edit profile page, regenerate them, and store them in a safe place. Thank you.
On Friday, October 29th, 2021, we'll be running the first annual and second-ever SAC Code Challenge!
You can write this year's contest in any two-hour window between October 29th, 00:00 EDT, until November 1st, 00:00 EDT. The contest will be composed of 5 problems with problem difficulty ranging from CCC Junior 1 to CCC Senior 3.
Additionally, the problems will be themed around Halloween.
Unlike last year, there will be no registration requirements to participate.
DMOJ's rating system was based off of Topcoder's rating system, using rating and volatility to rank contestants. Topcoder's rating system has a flaw that contestants who wish to maximize their rating have incentives to underperform in contests to increase their volatility, as higher volatility leads to larger rating changes. For similar reasons to the above, contestants' ratings do not converge quickly to their true rating. Due to these flaws in the current rating system, DMOJ has moved to a new rating system called Elo-MMR.
Elo-MMR is a rating system designed by Aram Ebtekar and Paul Liu. It's designed to be used in formats where multiple contestants compete in rated competitions at the same time and can be ranked discretely against each other. It is designed to converge contestants' ratings more quickly than existing rating systems. Furthermore, contestants wishing to maximize their rating are never incentivized to underperform in any competition.
Because of the migration, user ratings have been retroactively changed as if DMOJ had always been using Elo-MMR. On average, users' ratings will have increased slightly, so rating cutoffs for titles have been increased accordingly. The new rating title boundaries look like this:
The rating distribution on DMOJ looks as follows:
For further technical details on exactly how Elo-MMR works, please refer to this paper.
From Saturday, July 31st to Wednesday, August 4th, we'll be hosting An Animal Contest 3. Participants will have a 3-hour window to complete 8 problems centered around monkeys! See the contest page for more details.
Note that unlike AAC2, AAC3 is rated for everyone.
July 17th is World Emoji Day. On most platforms, the calendar emoji 📅 shows this date. Naturally, to celebrate this day, we'll be hosting a week-long contest about calendars.
See the contest page for more details.