Congratulations to our Algorithm Champion,
About the Algorithm Competition
The Algorithm Competition, as part of the Topcoder Open, is a timed contest where all contestants compete online and are given the same problems to solve under the same time constraints. The competition is available in four programming languages: Java, C#, C++, and Python.Algorithm rounds are run in the Arena. Learn more here.
Listen to [t-mac] explain the TCO Algorithm Competition in this video.
The 2016 Topcoder Open Algorithm Competition (“Algorithm Competition”) will take place between February 1, 2016 and the onsite Algorithm Finals taking place at a location and on dates to be determined. The Algorithm Competition will consist of (1) online qualification round, (3) online rounds, up to (4) onsite regional rounds, (1) online wild card round, and the onsite Semi-Finals and Finals. The highest scoring competitors from the final online round and from the online wild card round will win a trip to the Tournament to compete in the onsite Semifinal and/or Championship Rounds of the Algorithm Competition.
The Algorithm Competition is part of the Tournament, and by participating in this Algorithm Competition, you agree to these rules.
There is no specific registration needed for the TCO16 Algorithm Competition. Competitors will only need to be a topcoder member, and register for a competition round just prior to the start of it.
Algorithm Competition Round Structure
Each Online and Onsite Round of the Algorithm Competition consists of three phases: Coding Phase, Challenge Phase, and System Testing Phase. (Note: The format of these competition rounds is similar to the format of topcoder Single Round Matches. The rules in place for Single Round Matches as of February 1, 2016 will also apply to the online rounds of the Algorithm Competition. The same rules will apply to the onsite rounds, with the only exceptions being a different length of Coding and Challenge Phases.)
The Coding Phase is a timed phase in which all Competitors are presented with the same three questions representing three levels of complexity and three levels of potential points. Points are awarded for each problem upon submission of a solution that successfully compiles. Points are calculated on the total time elapsed from the time the Competitor opened the problem until the time the Competitor’s successfully compiling submission was submitted. During the Online Rounds, the Coding Phase will last 75 minutes. During the Onsite Rounds, the Coding Phase will last 85 minutes.
The Challenge Phase is a timed phase wherein each Competitor has the opportunity to challenge the functionality of any other Competitors’ submission. If successful, the challenge will result in (i) the challenged Competitor losing any points awarded for the challenged submission, and (ii) a 50-point bonus for the challenging Competitor. If unsuccessful, the challenging competitor’s point total in that round of the Competition will be reduced by 25 points. During the Online Rounds, the Challenge Phase will last 15 minutes. During the Onsite Rounds, the Challenge Phase will last 10 minutes.
Before the start of each round, the Competitors will be randomly assigned to competition rooms. A Competitor is only able to challenge the solutions from the same room into which he/she is assigned. Each competition room will have a maximum of 25 Competitors.
The System Testing Phase applies to all submissions that have not already been successfully challenged. If the topcoder System Test finds a flawed submission, the Competitor who submitted that submission will lose all of the points that were originally awarded for that submission. The System Testing Phase consists of applying a set of inputs to a submission. If the output from a Competitor’s submission is not correct, the submission is considered flawed and loses all points awarded. All successful challenges from the Challenge Phase will be added to the sets of inputs for the System Testing Phase.
The Unused Code Rule is in effect for all Online and Onsite TCO rounds. This rule is a policy against including extra content into a submission that is not a part of the solution of the problem. For detailed description of the rule, please refer to chapter 8 here.
Automatic Berths – The 250 members who have the highest algorithm competition rating as of Thursday, March 24, 2016 at 12:00 UTC -4 and who meet all of the following criteria will receive an automatic berth into Stage 2:
- Competed in at least one rated topcoder SRM in 2016.
- Competed in a total of at least three (3) rated topcoder Algorithm events as a member at any time.
- Meet all other Algorithm Competition and Tournament eligibility criteria.s
In case of a tie for any automatic berth into Round 2, each tied member will receive an automatic berth.
Competitors receiving an Automatic Berth are not permitted to compete in the qualification rounds.
Advancement To Online Round 2 – All Competitors who do not receive an automatic berth, who meet all of the Algorithm Competition and Tournament eligibility criteria can compete for one of the remaining 2,250 spots in Online Round 2. Three (3) Online Rounds (1A, 1B and 1C) will be held and the highest scoring 750 Competitors from each of these rounds will advance to Online Round 2. Competitors who have already advanced to Online Round 2 may not compete in future Online Rounds of qualification round.
The schedule and details of the Online Qualification Rounds are as follows:
|Online Qualification Rounds||Time||Max # of Competitors||Max # of Advancers|
|Round 1A||Saturday, March 26 at 12:00||All members who have not previously advanced – limited to the first 2,500 Competitors who register in the Arena||750|
|Round 1B||Tuesday, April 12 at 11:00||All members who have not previously advanced – limited to the first 2,500 Competitors who register in the Arena||750|
|Round 1C||Wednesday, April 27 at 7:00||All members who have not previously advanced – limited to the first 2,500 Competitors who register in the Arena||750|
*Times listed in UTC -4.
Online Rounds 2 and 3
All Competitors who advanced to Online Round 2 can compete for one of the 120 spots in Online Round 3.
All Competitors who advanced to Online Round 3 can compete for one of the 8 spots in the Onsite Algorithm Competition. Two such rounds will be held and the highest scoring 4 competitors from each of these rounds will advance to the Onsite Algorithm Competition. Any competitor may only win a single advancement (and trip) to the championship round.
The dates and times of the Online Round 2:
|Online Round 2||Time||Max # of Participants||Max # of Advancers|
|Round 2A||Thursday, May 12 at 11:00||Up to 2,500||40|
|Round 2B||Thursday, May 26, 2016 at 7:00||Up to 2,500||40|
|Round 2C||Saturday, June 18 at 13:00||Up to 2,500||40|
|Round 3A||Saturday, July 23 at 12:00||Up to 120||4|
|Round 3B||Saturday, August 27, 2016 at 12:00||Up to 120||4|
|Wildcard||Saturday, September 10, 2016 at 12:00||Up to 40||2|
Onsite Regional Rounds
Up to (4) Onsite Rounds will be held around the world at TCO16 Regional Events. Competitors wanting to compete in one of the onsite regional rounds must be present at the event and bring their own laptop to compete. The top 10 scores from each Regional Onsite Round will advance directly to the Online Wild Card Round.
|Regional Event Location||Date|
|Beijing, China||June 5|
|New York City, USA||June 17|
|Jaipur, India||July 30|
|Saint-Petersburg, Russia||September 3|
*We reserve the right to edit regional event quantities, locations, and dates as needed.
Online Wild Card Round
Once all the Onsite Regional Rounds are complete, there will be one Online Wild Card Round. The two (2) highest scorers from this round will win a trip to compete in the TCO16 Onsite Algorithm Finals!
*Times listed in UTC -4.
Scoring and Advancing during Online Rounds
After each Online Round, a number of the highest scoring competitors across all rooms will advance to the next Online Stage (or to the Onsite Algorithm Competition). To determine a Competitor’s score during the Online Rounds, the total point values from all three phases of the round are added for each Competitor. The Competitors are then ranked in order of score, with the highest scoring Competitors advancing to the next stage. To be eligible to advance from an Online Round, the Competitor must finish this round of the Algorithm Competition with a point total greater than zero.
The structure of the Online Rounds is as follows:
Online Rounds 1A, 1B, 1C
Up to 2,500 Competitors will compete, with up to 750 of the highest scoring Competitors across all rooms advancing to Online Stage 2.
Regional Rounds 2A, 2B, 2C
Up to 2,500 Competitors will compete, with up to 40 of the highest scoring Competitors across all rooms advancing to Online Stage 3.
Online Rounds 3A, 3B
Up to 160 Competitors will compete, with the 4 highest scoring Competitors (from each round) across all rooms advancing to Onsite Algorithm Competition.
Onsite Regional Rounds
Up to 10 Competitors with the highest scores across all rooms will advance to the Online Wild Card Round.
Online Wild Card Round
Up to 40 Competitors will compete, with the 2 highest scoring Competitors across all rooms advancing to the Onsite Algorithm Competition.
NOTE: In the event of a tie for any advancing position during an Online Rounds, all tied competitors will advance to the next stage and the number of eligible Competitors for that next stage will be adjusted accordingly.
In the event of a tie for any advancing position, the tie will be resolved in the following manner:
- The Competitor with the highest rating for the Algorithm Competition immediately prior the start of Online Round 1A will advance. If a Competitor was unrated immediately prior the start of Online Round 1A, it is assumed that he/she had a rating of zero.
- If a tie still remains, all remaining tied Competitors will advance.
In the event, when a Competitor advanced to the Onsite Algorithm Competition is unable to attend, topcoder may choose to replace this Competitor with another Competitor or to take no action in this regard (thus reducing the total number of onsite Competitors). The choice is made at topcoder’s sole discretion. In case of replacement choice, the right to attend the Onsite Algorithm Competition is passed to another Competitor according to the following priority list (1st position in the list is highest priority, each next position is of lower priority than the previous one):
- 5th place finisher in round 3A
- 5th place finisher in round 3B
- 6th place finisher in round 3A
- 6th place finisher in round 3B
- And so on.
|Onsite Final Rounds||Date and Time|
|Semifinal 1||Saturday, November 19 at 8:00 p.m. - 10:00 p.m.|
|Semifinal 2||Sunday, November 20 at 6:30 p.m. – 9:00 p.m.|
|Championship||Monday, November 21 at 1:00 p.m. - 3:30 p.m.|
The Onsite Rounds
There will be two (2) Semifinal Round with up to five (5) Onsite Algorithm Competitors. Up to two (2) of the highest scoring Onsite Algorithm Competitors during each Semifinal Round will advance to the Championship Round. To be eligible to advance to the Championship Round, the Onsite Algorithm Competitor must finish the Semifinal Round with a point total greater than zero.
The Championship Round will be a single round with up to four (4) Onsite Algorithm Competitors. Final placement in the Championship Round is determined by comparing the total points of each Onsite Algorithm Competitor during the Championship Round. The winner of the Algorithm Competition will be the Onsite Algorithm Competitor with the highest point total during the Championship Round.
In the event of a tie in a Semifinal Round, all tied Algorithm Competitors will advance to the Championship.
In the event of a tie in a Championship Round, the prize money will be distributed equally among the tied Onsite Algorithm Competitors.
About the Prizes
The Algorithm Competition will award prizes to the Onsite Algorithm Competitors in accordance with the following table:
|Onsite Final Winners||Prize|
|All Round 3 Participants||TCO T-shirt (one per competitor)|
* Prizes will be awarded at the conclusion of the Championship Round. Winner must be present at the onsite Awards Presentation to receive prize.