# TopCoder

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.

- See TopCoder Problems Category for some categorized problems.

## Contents

- 1 Algorithms
- 2 Design
- 3 Development
- 4 External Topcoder Tools
- 4.1 jmzero's Random Statistics
- 4.2 Petr's MicroMatch
- 4.3 aussie's Submissions Statistics
- 4.4 aussie's Rating Chart Comparisons
- 4.5 dskloet's Rating Chart Graph Tool
- 4.6 dskloet's Division Summary Tool
- 4.7 felix_halim's Division Summary Tool
- 4.8 MB__'s TC Utilities
- 4.9 otinn's TopCoder Statistics
- 4.10 dennismv's TopCoder Stats

## Algorithms[edit]

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[edit]

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[edit]

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[edit]

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[edit]

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[edit]

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[edit]

*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[edit]

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 |

## Design[edit]

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

## Development[edit]

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

## External Topcoder Tools[edit]

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

### jmzero's Random Statistics[edit]

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

### Petr's MicroMatch[edit]

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

### aussie's Submissions Statistics[edit]

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

### aussie's Rating Chart Comparisons[edit]

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

### dskloet's Rating Chart Graph Tool[edit]

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

### dskloet's Division Summary Tool[edit]

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

### felix_halim's Division Summary Tool[edit]

Division Summary - Match division summary viewer.

### MB__'s TC Utilities[edit]

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

### otinn's TopCoder Statistics[edit]

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

### dennismv's TopCoder Stats[edit]

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