Algorithm Problem Writing

So you've taken your best shot at some of Topcoder's algorithm problems, and you've got some ideas for interesting problems you'd like to see in competition. What's next? Here's what it takes to write problems for Topcoder.


How it Works for Single Round Matches (SRMs)

There are three ways to write problems for SRMs:

  • Write a full problemset (3 problems each for division 1 and division 2). It is also possible to write less than 6 problems if you want to share some of them among both divisions. A popular way to share problems is D1-Easy/D2-Medium. Less popular (but still possible) ways are D1-Easy/D2-Hard or D1-Medium/D2-Hard.

  • Collaborate with other members (for example, your friends) and construct a full problemset as a group.

  • Write a subset of problemset. The subset should contain at least a D1-Medium or a D1-Hard problem (because it's harder to find problems for these slots). We will try to complement your subset with problems from another writer. Please note that it may be necessary to wait in order for an appropriate complement to become available.

How it Works for Topcoder Open Rounds

Problemsets for Topcoder Open are normally composed of problems created by different writers. We usually start looking for TCO problems 1-2 months before the actual rounds. When we start accepting problems for a particular tournament, all problems writers are notified about that via email. If you would like to write for TCO, please send us individual problems.

You can submit problems as often (or as rarely) as you like - submitting a problem does not commit you to any regular writing schedule.

How it Works for Marathon Matches (MMs)

There is no distinction between problems for Regular Marathon Matches and TCO Marathon Rounds.

Initial problem submission is just an idea description, with no details. Once approved you can write a visualizer, which includes test case generation, simulation/scoring routines and the actual visualization. This allows to test and tweak the problem easily.

Later you can submit the test code and test cases for the problem.


  1. 18+ years old

  2. Topcoder Algorithm/Marathon rating of at least 1500
    In case your Topcoder Algorithm/Marathon Rating is not above 1500, your performance on other competitive programming platforms will be considered. Please make sure you add your other profile links in the Application for consideration.

You may not participate in any contest in which problems you wrote are being used.

How You Get Paid

Being a problem writer can pay the bills! Here is the breakdown you can get paid:

Marathon Match Problem



Online Stage 1


Online Stages 2 and 3


Onsite Rounds



Entire SRM Problemset**


Division 1 Payments*


Division 2 Payments*


/* If a problem is shared among two divisions, then the larger of two corresponding rates is applied.

For example, D1-Easy/D2-Medium shared problem is paid $150

** Assuming no problems are shared among two divisions.

How it Works

In order to apply to be a problem writer and submitting your problems, you can choose any one of the methods below:

Method 1: Please fill this form and we will make sure your problem gets added to the system.

Method 2: Please send a writer application from MPSQAS (this is a tool where problems are developed).

Note: This is the older method and requires you to set up java in your machine. If you are using Java version 8 and above in your system, you will face security issue in running the JNLP

To do this, launch MPSQAS, login using your Topcoder credentials (uncheck 'Use SSL' checkbox) and submit an application by following Applications -> Problem Writer Application.

Refer to MPSQAS help document for more details.

Once the application is submitted, please contact us at (this is step is important because MPSQAS does not automated notifications about submitted applications).