Problems

The Problems section is where the problems your space owns are written and maintained. A problem holds its own metadata — type, number, visibility, difficulty and topics — one statement per language, an optional editorial per language, attachments, testsets and tests, a checker and optionally an interactor and a validator, generator scripts, code templates, reference solutions, issues and a change history.

Problems are edited in the console. Participants see the published result on your space's public site, at /problems/<number>.

The problems list

Fig 1. The problems list, with the search box, filters and the Add empty problem button.

The problems list

Every problem in the space, as a paginated table you can search, filter, sort and resize. Free-text search matches across the whole space, and the column set is yours to choose — three of the columns are hidden until you turn them on.

Column

Content

Number

Index of the problem in the public catalog, and the last part of its public URL.

Title

Statement title in your interface language, with the problem type underneath.

Visible

Published or Unpublished.

Origin

Where the problem was imported from, shortened — Polygon <path>, Eolymp <space>/<id>. Hidden by default.

Source

The contest or olympiad the problem was originally published at, as recorded on the statement. Hidden by default.

Author

Problem author name from the statement. Hidden by default.

You can filter by Number (a numeric comparison), Difficulty, Visible, and Topic from the shared topic taxonomy. Difficulty and topics are set on the problem itself, in the Classification row of its Statement tab.

Four buttons above the table create problems: Add empty problem, and the three import options — Import from a space, Import from Basecamp and Import from Polygon.

Each row has its own menu: View (published problems only, opens the problem on the public site), Publish / Unpublish, Synchronize (imported problems only) and Delete. Row actions are evaluated per problem, so a problem you cannot write to shows none of them. Clicking a row opens the problem itself.

The problem workspace

Opening a problem gives you a header — its title and number, plus View, Synchronize, Export problem, Publish / Unpublish and Delete — and a row of tabs:

Tab

Contents

Overview

Submission statistics and the latest submissions.

Statement

Classification, statements per language, editorial.

Solutions

Code templates and reference solutions.

Testing

Testing configuration, checker, interactor, validator, generators, testsets and tests.

Discussion

The public discussion thread attached to the problem.

Suggestions

Changes proposed by community members. Shown only in the Basecamp space.

Activity

Background tasks that touched this problem.

Changelog

Version-by-version history of edits.

Issues

Issue tracker for the problem.

The Overview tab

Three widgets over a fixed 30-day window: Submissions by Day, a daily count; Submissions by Verdict, a pie chart in which the failing verdicts are tinted in distinct shades so Time limit exceeded, CPU exhausted, Memory overflow and Runtime error stay apart; and Submissions, the ten most recent submissions with id, member, runtime and status. See all opens the Submissions section filtered to this problem, and clicking a row opens that submission.

While a problem import is running, an alert sits above the widgets, linking to the Activity tab.

Difficulty and topics

The Classification row at the top of the Statement tab shows the problem's current difficulty and opens a dialog with two fields. Difficulty runs Very easy, Easy, Medium, Hard, Very hard, and can be cleared to leave it unset. Topics is a multi-select over the shared topic taxonomy. Both are saved together.

They feed the difficulty and topic filters in the problems list, and the catalog filters on the public site.

Change history

The Changelog tab lists edits to the problem newest first, grouped by day. Each entry carries a version number, a one-line summary of what changed, the author — an entry whose author no longer exists reads Ghost — and the time. Load more pages further back. A problem with no history reads No changes yet.

Export a problem

Export problem in the workspace header produces a downloadable snapshot of the whole problem, content included, and starts the download when it is ready. A toast reports progress. Exporting needs only read access to the problem.

Using a version number from the Changelog tab, the snapshot can be produced for an earlier revision rather than for the problem as it stands now.

Background work

Imports, test generation, auto-translation and stress checks all run in the background. The problem's Activity tab lists the ones that touched this problem, with their type, status, progress and timing, and offers Download logs on any task that produced a log. The alerts you see elsewhere in the workspace — Problem import is running, Test generation is running, Translation is running — all link here. The space-wide view is Background tasks.

Secret content

Checkers, interactors, validators, generators, code templates, reference solutions and individual tests can be marked secret. This is how an imported problem protects material its author does not want exposed: secret content is never sent to the console, so the editor genuinely cannot show it to you.

In lists, a secret item carries a Secret badge where its runtime or its test input would be. Opening one gives you a Secret data prompt with two ways out — cancel, or Override, which opens an empty editor and replaces the stored item with whatever you save. The original is not recoverable through the console afterwards.

Permissions

Action

Permission

Browsing the problems list, viewing a problem, exporting it

Read problems

Creating, importing, editing, publishing, synchronising and deleting problems and all their content

Write problems

Rejudging submissions of a problem

Write problems together with Run testing

Row-level actions are gated per problem, so someone with access to only part of the catalog sees actions only on the problems they can write to. See Access management for how permissions are granted.

Where to go next