From Algorithmist
Jump to: navigation, search
This is a stub or unfinished. Contribute by editing me.

TopCoder consists of programming competitions in three different areas: algorithms, component design, and component development.


For the algorithm competitions on TopCoder, four languages are accepted: C++, Java, C#, and VB.NET. While most coding competitions have you develop a complete program, TopCoder only asks you to provide a single function inside a single class. Also, the algorithm competitions are live, meaning you are only rated if you participate during the actual SRM, though practice rooms (with problems from past SRMs) are available.

Single Round Matches

A single round match (SRM) is a ninety-five minute algorithm coding competition. Each competitor is given three problems of varying difficulty (easy, medium, hard) and is scored based on how quickly they provide correct solutions. Each SRM is broken into four phases: coding, intermission, challenge, and system tests.

Coding Phase

The coding phase lasts seventy-five minutes and is when all actual coding takes place. Your score for each problem is a function of the time between opening the problem and submitting the solution. A point penalty is given for resubmission. After the coding phase, your solutions cannot be changed. A five minute intermission follows the coding phase.

Challenge Phase

After the intermission, there is a fifteen minute challenge phase. During the challenge phase, you can view the solutions of other coders in your assigned room. If you think their solution is incorrect, you can challenge them by giving their program whatever parameters you wish (provided they meet all of the constraints). If their solution provides the correct output, you lose 25 points. If their solution provides incorrect output, you gain 50 points, and their submission no longer qualifies for points or other challenges.

System Testing

Following the challenge phase, system testing takes place. During the system test phase, each solution is tested against a large number of inputs to determine if it is correct. Corner case tests are included. If your solution fails to provide the correct output for either a challenge or a system test, you receive no credit for it. The time it takes for system testing to complete is widely variant, including both random input and successful challenges submitted by other coders.

Marathon Matches

Marathon matches are closer to the standard online judge system than SRMs. You are given an extended period of time to solve one problem. Each problem has their own scoring criteria, either based on time to complete, or based on the effectiveness of the solution.

List of problems

Note: Free registration required to view problem description on the Topcoder website.
SRM Division II Division I
Easy Medium Hard Easy Medium Hard
SRM 4 ModEncoder Repeating PegJump ModEncoder Repeating PegJump
SRM 3 CommonChar Population DigitArith CommonChar Population DigitArith
SRM 2 n/a StockCalc LetterSort Obstacle
SRM 1 n/a Finances Fraction PrimeNumbers

Tournament problems

SRM Division II Division I
Easy Medium Hard Easy Medium Hard
TCCC '01 Round 2 n/a StringDup Syntax Football
TCCC '01 Round 3 n/a Weekday WordFilter Matrix


For the design competitions on TopCoder, two languages are accepted: Java and C#.


For the development competitions on TopCoder, two languages are accepted: Java and C#.

External Topcoder Tools

Since much of statistics are exported through XML, there are some useful or fun external tools:

jmzero's Random Statistics

jmzero's Random Coder Stats - Random compliment generator, allows you to see how you stack up against your peers!

Petr's MicroMatch

Petr's MicroMatch - Used to compare Match-By-Match of two competitors.

aussie's Submissions Statistics

aussie's Submissions Statistics - Used for breaking down a particular coder's performance depending on the difficulty.

aussie's Rating Chart Comparisons

aussie's Rating Chart Comparisons - Used for comparing rating charts.

dskloet's Rating Chart Graph Tool

dskloet's Rating Chart Graph Tool - Used for comparing rating charts.

dskloet's Division Summary Tool

dskloet's Division Summary Tool - Match division summary viewer.

felix_halim's Division Summary Tool

Division Summary - Match division summary viewer.

MB__'s TC Utilities

MB__'s TC Utilities - Tools for predicting some results of currently running (or just ended one) SRM match

otinn's TopCoder Statistics

otinn's TopCoder Statistics - A collection of various "Top 100" and other statistics, as well as TopCoder duels and micromatches

dennismv's TopCoder Stats

dennismv's TopCoder Stats - What if you could change things?