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>.
Fig 1. The problems list, with the search box, filters and the Add empty problem button.
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 — |
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.
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. |
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.
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.
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 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.
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.
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.
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.
Create a problem — start an empty one.
Import problems — from Polygon, Basecamp, or another space.
Problem types — what the type changes about grading and about the console.
Statement and Editorials — what participants read.
Test cases, Testsets and scoring, Generate tests — the data solutions are judged against.
Checkers, Interactors, Validators — the programs that grade and verify.
Publish a problem, What participants see while solving, Issues and suggestions.