• DMOJ
  • Home
  • Problems
  • Submissions
  • Users
  • Contests
  • About
    • Status
    • Tips
    • API
    • Github
Log in  or  Sign up

  • Blog
  • Events

News

The PEG judge is merging with DMOJ

Xyene posted on July 22, 2020, 5:15 p.m. 12

Hi all,

At the end of July, the PEG judge will merge into DMOJ.

DMOJ drew inspiration heavily from PEG in the beginning, and it's fair to say that DMOJ would not have begun had it not been for PEG — we're excited to carry on their legacy moving forward.

The migration FAQ can be read here. If you have any questions not covered there, feel free to let us know via the comments.

The ~700 unique PEG problems are being uploaded on an ongoing basis, and can be accessed by joining the temporary WCIPEG Migration organization. Any submissions made (and points earned!) during this time will carry forward to when the problems are merged into the main problemset, so we encourage everyone to try the problems out and let us know of issues that may come up. Once in the organization, the problems may be accessed here.

This migration is a colossal effort, so I'd like to thank the PEG admins as well as c, Bit, Ninjaclasher, Pookmeister, Kirito, wleung_bvg, xiaowuc1, Plasmatic, JoshuaL, ManchurioX, WallE256, quantum, and FatalEagle for making it happen. If you're interested in helping out, just send us a ping in Slack, or leave a comment — there's no shortage of things to do :)

August 11 Update

A quick update on the state of the migration:

  • Almost all problem testdata has been migrated.
  • Problem statements for 459 of 729 problems unique to PEG have been ported.
  • 400K of 600K PEG submissions have been regraded. Further regrading may be necessary while we adjust time limits to be consistent with DMOJ judges.

Once we've finished processing submissions, PEG user accounts will become available to log in to. At that time, problems will be moved to the main problemset on a rolling basis.

Algorithmic Thinking: A Problem-Based Introduction

posted on June 18, 2020, 11:21 p.m. 2

Hi DMOJ!

Dr. Daniel Zingaro "yeerk16" of the University of Toronto has recently been working on a book introducing contest programming concepts in a practical way. It's nearing completion, so we thought we'd let you know! I'll let Dr. Zingaro handle the introduction:

Programming is about using a computer to solve problems, and algorithms and data structures are the building blocks of computer programs. For each problem that a programmer wants to solve, they employ an algorithm: a sequence of steps for solving the problem. Many books teach algorithms independently of specific problems, but this book uses careful explanations, examples, and arguments, rather than formal mathematics and proofs which make it difficult for you to connect what you are learning to what you can do with that learning. Algorithmic Thinking: A Problem-Based Introduction teaches you to use the best algorithms and data structures for a given situation by walking you through solving problems pulled from international programming competitions, such as how to determine whether snowflakes are unique; how to win a game in the minimum number of moves; how to find the number of ways to get to someone's house; how to escape a cave in as few steps as possible; and so on.

You'll tackle challenging topics like recursion, dynamic programming, graphs, greedy algorithms, heaps, hash tables, segment trees, and other data structures for efficiently handling data. The book contains no pseudocode: all code is written in C and is thoroughly explained in the text (C is a de facto programming language for programming competitions). By the end of the book, you should understand the importance of carefully working through a problem, and why it pays to organize data using data structures.

Algorithmic Thinking: A Problem-Based Introduction will be out in print in October, but it's available as an Early Access ebook now. Chapters will become available as soon as they're copyedited; the first four chapters are available now (including a free first chapter), and the rest will follow in a few weeks.

The book uses problems from various online judges (including DMOJ!) as exercises, which sounds like a fun, hands-on way to pick up new tricks.

We're also excited to give away some copies in future DMOJ competitions, so watch out for that :)

DMOPC '19 April Contest

Kirito, richardzhang, george_chen, little_prince, KevinWan, AvaLovelace, Tzak posted on April 27, 2020, 9:11 p.m. 0

Thanks for participating in the DMOPC '19 April Contest!

Congratulations to the top 5 contestants!

  1. bqi343 (perfect score)
  2. 300iq (perfect score)
  3. bruce
  4. zhouzixiang2004
  5. Eliden

We hope you enjoyed the contest!


From Monday, May 4th to Wednesday, May 6th, we'll be hosting the April* 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 4-hour window between 09:00 EDT of May 4th and 23:59:00 EDT of May 6th. Please see the contest page for more details.

See you soon!

*We cannot guarantee the existence of April in this contest. We apologize in advance for any month related bamboozling.

Wesley's Anger Contest 4

wleung_bvg, aeternalis1, Zeyu, Pookmeister posted on April 12, 2020, 12:37 a.m. 4

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.

Good luck to all the participants!

Art Academy Contest

MehMehMeh, astrocat879, skyflaren, A_L_I_C_E_ posted on April 11, 2020, 6:00 p.m. 0

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.

Hope to see you there, and best of luck!

New Judges, and New Runtimes

quantum, Xyene posted on April 9, 2020, 5:11 p.m. 7

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

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 :)

DMOPC '19 March Contest

richardzhang, george_chen, little_prince, KevinWan, Tzak posted on April 2, 2020, 11:44 p.m. 16

Thanks for participating in the DMOPC '19 March contest!

Congratulations to the top 5 contestants!

  1. ecnerwal (perfect score)
  2. bqi343 (perfect score)
  3. 300iq
  4. zhouzixiang2004
  5. zxyl

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.

See you soon!

DMOJ Introduces Innovative Way to Submit

c posted on April 1, 2020, 12:00 a.m. 22

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:

  1. Obtain your API token from your profile.

  1. Use the /auth [token] command to authenticate your connection. You should see a message welcoming you if the authentication is successful.

  1. Use the /book command to obtain a book to write your code in.

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

Find it here.

1 Based on a direct comparison of how much data it takes to load dmoj.ca and its assets vs. how much it takes to join the server.

DMOPC '19 February Contest

richardzhang, george_chen, KevinWan, tankibuds, Tzak posted on Feb. 20, 2020, 11:06 a.m. 1

Thanks for participating in the DMOPC '19 February contest!

Congratulations to the top 5 contestants!

  1. bqi343 (perfect score)
  2. zhouzixiang2004 (perfect score)
  3. Egor (perfect score)
  4. d (perfect score)
  5. Eliden (perfect score)

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.

See you soon!

Victor's Programming Exhibition 1

Aaeria posted on Jan. 23, 2020, 12:00 a.m. 8

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.

Credits

The problem setter for this contest is Aaeria.

The testers are magicalsoup, Bobliu, crackersamdjam, and Arihan10.

  • «
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • ...
  • 17
  • 18
  • »

Comment stream Slack

  • henrybaolol9 → CCC '17 J3 - Exactly Electrical
  • henrybaolol9 → CCC '17 J3 - Exactly Electrical
  • julian33 → CCC '17 J3 - Exactly Electrical
  • GamerWolf67 → CCC '14 J2 - Vote Count
  • thomas_li → DMOPC '20 Contest 4 P3 - Roving Roombas
  • 31501357 → DMOPC '20 Contest 4 P3 - Roving Roombas
  • julian34 → CCC '17 J3 - Exactly Electrical
  • Jinx → CCC '16 S3 - Phonomenal Reviews
  • asofjsaoihf → CCC '05 J5 - Bananas
  • faraz123 → CCC '02 J2 - AmeriCanadian
RSS / Atom

New problems

  • An Animal Contest 1 P1 - Alpaca Shapes
  • An Animal Contest 1 P2 - Alpaca Racing
  • An Animal Contest 1 P3 - Happy Alpacas
  • An Animal Contest 1 P4 - Alpaca Arrays
  • An Animal Contest 1 P5 - Odd Alpacas
  • An Animal Contest 1 P6 - Alpaca Distancing
  • World Tour Contest Problem 1 — Solar Eclipse
RSS / Atom

fork us on Github | like us on Facebook | help us translate | terms of service |