Getting started

From an empty account to a scored submission in five steps.

1. Register and form a team

Create an account, then create a team on your dashboard or accept an invitation from a teammate. You take part as a team, even a team of one. Pick the Main or Self-hosted track when you create the team; it locks when the first stage opens.

2. Read the problems

Stage 1 releases 15 problems each week in 4 rounds, listed on the problems page once the round opens. Every problem page has the statement and the instance and solution schemas. Public instances are for development; scoring uses private instances, one set per track, which are never published.

3. Build your solver

The quickest start is the starter repository, which works for both tracks. It downloads the problems, runs an example agent that writes a solver for each one, tests the solvers the way the sandbox runs them, and submits them. Setup is on the Example code page.

Main track code runs in a standardised Python image, Python 3.12 or 3.14, with a published dependency list, no network access, 2 vCPU and 4 GB RAM, and a time limit per instance. Self-hosted track teams run their own solver and submit results within a time window instead.

You can add open-source packages from PyPI to a submission, listed as in a requirements.txt, within the limits in the docs. They are installed once, before the first run and outside its time limit, and reused by later submissions with the same image and list.

The images, the contract your solver follows and every limit are in the docs.

4. Submit

Upload a zip, tar or tar.gz archive of up to 4 MB from the Submissions page of your dashboard. One submission per team per UTC day, 4 during the testing stage. Your best completed submission in each round is the one that counts.

The archive holds one folder per problem of the open round, named by the problem's slug, each with its own solve.py, which runs with python. The upload page shows which problems your archive covers before you submit; a problem without a folder scores zero on all of its instances.

Both tracks can also submit from a script through the API. Generate a personal API token under Settings, on the Security tab of your dashboard.

Self-hosted teams start a submission instead, which opens a window long enough to solve every instance one after another. Start each instance to download it, then upload one solution file within its time limit plus 1 min. Instances without a solution score zero.

5. Follow the leaderboard

Each submission is evaluated on every private instance of its track. The per-instance results are on your dashboard; the aggregate score goes to the leaderboard.

Open the leaderboard