From April 26th to April 28th, we'll be hosting Wesley's Anger Contest 4! With the CCO quickly approaching, this contest will be a great way to practice your problem solving skills. The difficulty of the problems will be similar to a typical Wesley's Anger Contest. In addition, Zeyu, Pookmeister, and aeternalis1 decided to make all the problems squirrel themed!
Anyone with a DMOJ account is welcome to participate, and anyone without one is welcome to register and participate.
Contestants may participate in any 4-hour window between April 26th, 09:00 EDT to April 28th, 23:59 EDT. Please see the contest page for more details.
From Friday, April 17th to Sunday, April 19th, we will be hosting the first ever Art Academy contest!
Anyone of any skill level is encouraged to compete; all that is required is a DMOJ account.
Contestants may participate in any 3-hour window between 0:00 EDT of April 17th and 23:59:00 EDT of April. 19th. Feel free to view the contest page for more details.
It's been a while since we've posted an update on what we've been working on,
so we felt it was about time for one.
New Baremetal Judges
The biggest news we have to share is already over a month old by now: DMOJ judges
now run on a dedicated, bare-metal machine!
Until now we've sourced our judges from cloud providers, but that has always
been a bit of hardware roulette: sometimes a judge VM would be provisioned on
Intel hardware, while other times our provider would give us shiny new AMD EPYC
cores. Typically, these machines were also overcommitted by our hosts, so
timing consistency between submissions was at the mercy of potentially noisy
neighbours.
No longer! We've gone and purchased real hardware to run judges on: a 6-core (12-thread) AMD
Ryzen 5 3600X @ 3.8 GHz, with 16 GB 3200 MHz CL16 dual-channel RAM. Frequency
scaling has been disabled for timing consistency. Each judge runs in a QEMU
instance allocated 2 GB RAM and 1 physical core (2 threads).
These judges are much (2-5×) faster than the old ones (and empirically,
much more consistent). As a result, problem time limits have been rescaled
based off a randomized sample of submissions — some problems may
currently have time limits that are either too low, or too high. If you think
you've run into such a problem, please let us know in
Discord.
New Runtime Versions
We maintain Docker images based off stable Debian (Buster) with runtimes as
part of the DMOJ/runtimes-docker
project; these are the runtimes used by judges on the DMOJ. Since the GCC in
Buster (version 8) was incorrectly identifying the Zen 2 judges as Bulldozer,
we've upgraded our images to Debian Sid in order to get GCC 9. Apart for better
support for our judges, you can read what's new here.
As a side-effect of upgrading to Sid, we now have much newer
versions of most runtimes.
Notably, Python 3 has been upgraded from 3.7 to 3.8, and Clang from 7 to 9. OCaml
was also upgraded from 4.05 to 4.10; we took this opportunity to rewrite the OCaml
backend to link Jane Street Core/Base/Stdio and Zarith libraries, for a nicer
functional programming experience :)
We hope you enjoyed the contest, and we look forward to seeing you in DMOPC '19 April! (Typically, DMOJ doesn't host an April DMOPC as DMPG is hosted at that time instead. However, given the circumstances at the moment, it's not possible for DMPG to run, so we are planning on hosting another DMOPC.)
From Friday, March 27th to Sunday, March 29th, we'll be hosting the March DMOJ Monthly Open Programming Contest!
This round will be rated
on join
, a change from previous contests.
Anyone with a DMOJ account is welcome to participate, and anyone without one is welcome to register and participate.
Contestants may participate in any 3-hour window between 09:00 EDT of Mar. 27th and 23:59:00 EDT of Mar. 29th. Please see the contest page for more details.
Update: The server has been taken down. If you wish to run your own instance, the plugin is available here.
DMOJ has always been at the forefront of Online Judge technology. Its early introduction of good design ushered in a whole new generation of well designed Modern Online Judges.
Today, DMOJ: Modern Online Judge is hoping to continue that innovation with our newest product that will revolutionize the Online Judge industry forevermore.
DMOJ-over-Minecraft is an innovative new system that opens participation on the platform to a whole new subset of users: Minecraft players.
A New System
Our new system allows you to join contests and submit to problems inside Minecraft. To do this, we created a Minecraft server and a custom plugin to facilitate joining and submitting.
Using the book and quill item in Minecraft, you can write sophisticated code with a simple and easy to use interface.
Steps
Our new system is easy to use. Simply join our server at mc.dmoj.ca (v1.15.2 client required) and follow the following steps:
Obtain your API token from your profile.
Use the /auth [token] command to authenticate your connection. You should see a message welcoming you if the authentication is successful.
Use the /book command to obtain a book to write your code in.
Use the /submit [problem code] [language] command to submit your code with a language of your choice.
Major Advantages
DMOJ-over-Minecraft is a huge improvement to our current system.
The HTTP protocol, of which DMOJ currently runs on was designed more than 30 years ago. In contrast, the Minecraft protocol was designed only a decade ago. Its design means that less data is required to be transferred compared to our current HTTP system.1
In addition to protocol modernization, due to the lack of a copy system in the Minecraft book interface, the issue of code copying has been solved. Copying books using the crafting method is also disabled.
This new system will also allow help expand the Online Judge market to demographics never before seen on any Online Judge.
With this new system, DMOJ is ushering in a whole new generation of Online Judges, driving more innovation in the space.
Try It!
If you want to try the new and innovative system out for yourself, join with a v1.15.2 client at
mc.dmoj.ca
Source Code
The source code has been released on GitHub with a MIT license.
We hope you enjoyed the contest, and we look forward to seeing you in DMOPC '19 March!
From Friday, February 28th to Sunday, March 1st, we'll be hosting the February DMOJ Monthly Open Programming Contest!
Anyone with a DMOJ account is welcome to participate, and anyone without one is welcome to register and participate.
Contestants may participate in any 3-hour window between 0:00 EST of Feb. 28th and 23:59:00 EST of Mar. 1st. Please see the contest page for more details.
Hello DMOJ! We are excited to host the new Victor's Programming Exhibition (VPEX)! The contest will take place during a 2.5-hour window between 3:00 pm EST of Feb. 7th, 2020 to 3:00 pm EST of Feb. 10th, 2020. To help you prepare for the CCC, this contest will feature 6 problems with an approximate difficulty ranging from CCC Junior 1 to CCC Senior 5. This contest will not be rated.
VPEX Onsite
While everyone is welcome to participate online, we also invite you to attend VPEX on-site at Victoria Park CI, free of charge! The on-site contest is identical to its online counterpart, except for the following additions:
The contest conditions will be more realistic.
Solutions will be explained at the end of the contest.
Prizes, food, and provisions will be provided to each participant.
Victoria Park CI is located at 15 Wallingford Rd, North York, ON M3A 2V1.
Directions to the contest location can be found here. The on-site contest will take place from 3:00 to 6:00 pm on Feb. 7th, although you may leave early if you are done. Please arrive between 3:00 and 4:00 pm.
From February 1st to February 3rd, we'll be hosting Wesley's Anger Contest 3! With the CCC quickly approaching, this contest will be a great way to practice your problem solving skills. The difficulty will be easier than the previous two contests in this series.
Anyone with a DMOJ account is welcome to participate, and anyone without one is welcome to register and participate.
Contestants may participate in any 3-hour window between February 1st, 1:00 PM to February 3rd, 11:59 PM. Please see the contest page for more details.
We hope you enjoyed the contest, and we look forward to seeing you in DMOPC '19 February!
From Sunday, December 29th to Tuesday, December 31st, we'll be hosting the December DMOJ Monthly Open Programming Contest!
Anyone with a DMOJ account is welcome to participate, and anyone without one is welcome to register and participate.
Contestants may participate in any 3-hour window between 0:00 EST of Dec. 29th and 23:59:00 EST of Dec. 31st. Please see the contest page for more details.
Once again, congratulations to the winners this year. An email has been sent regarding your awards.
We hope that you enjoyed the contest and we wish to see you again next year!
We're excited to invite you to participate in GlobeX Cup '19!
The event will take place on December 6-8 for a 48-hour window. Once you enter the contest, you will have 3 hours to solve the designated problem statements. The contest contains two divisions of increasing difficulty, with more than $1000 in prizes awarded to the top competitors in each division and giveaway winners.
Contest
GlobeX Cup '19 will have a junior and senior division, featuring problems with difficulties from elementary to advanced. To determine which division suits you the best, we recommend looking at the problem statements from last year's contest.
Registration
Please fill out this form in order to register for the contest and be eligible for prizes.
2nd Place: Wolfram|One + Wolfram|Alpha Pro (Junior & Senior)
3rd Place: Free Admission to ToHacks & CuHacking (Senior), Free Admission to StarterHacks (Junior)
Opening Ceremony
This year, our team will be hosting an online opening ceremony which will be live streamed on Youtube. The opening ceremony will start 15 minutes before the contest, and end when the contest begins. Join us for some exciting experiences and giveaways of mysterious prizes.