Register Now
Member Count: 483,795 - May 22, 2013  [Get Time]
Login
Dashboard > TopCoder Competitions > ... > Marathon Match Overview > How to Compete in Marathon Match Events
TopCoder Competitions View a printable version of the current page.  
How to Compete in Marathon Match Events
Added by mike , last edited by saganasa on Jan 28, 2013  (view change)
Labels: 
(None)

When are the Marathon Matchâ„¢ Events?

TopCoder holds several types of Marathon Match events, typically at least once per month. The day and time varies from event-to-event. See the event schedule on TopCoder's web site for the dates and times of future Marathon Match Events. Please keep in mind that all times on TopCoder's web site are communicated in either Eastern Standard Time (EST / GMT -5) or Eastern Daylight Time (EDT / GMT-4) depending on the time of the year. The web site will specify for which time zone the time for each event is specified. In addition, you may elect to receive a reminder email preceding each event. To do so, select to "Next Competition" box under the "Email Notification" heading in your TopCoder profile information. By checking this option, you will also receive emails regarding upcoming TopCoder tournaments and events.

In addition to typical Marathon Match events, TopCoder holds one advancement tournament (the TopCoder Open ) each year. Advancement tournaments are elimination tournaments and generally have a substantial prize purse involved. Each round of a tournament will affect the ratings of all participants, so they are also considered "rated events". The details on each of these events are posted to TopCoder's site as they are finalized. You can also view the information and details of most past tournaments.

Some Marathon Match events are considered rated events, while others are not. Please see the match details page for each event to determine whether or not the event is rated. Additionally, some Marathon Match Events, particularly those being sponsored by a third party, may have monetary or other prizes. The type, value, and method of awarding these prizes varies by match.

Getting Started

Unlike the "traditional" algorithm competitions, Marathon Match events are scored based upon the quality of a solution.  In other words, the correctness of a solution is not a simple pass/fail, but may be scored on many different criteria including how close the return values match a theoretical "correct" answer, how fast solutions run, or any of a number of other possible metrics.  While consistently performing well in a marathon match may be a skill that takes time to develop, getting started in one is very easy.  Often times, it is possible to start off with a basic "stub" solution that does nothing more than produce an output that matches the return type criteria as specified by the problem.  From there, it is possible to add logic to generate a more meaningful return value; anything from a basic simple approach to a more complicated and detailed solution are possible.  Very frequently, even very simple solutions will result in a positive score, and form the foundation from which higher scoring solutions are developed.

Registration

In order to compete in a Marathon Match event one must first register. One may register at any time during the submission phase. The submission phase will last for an extended period of time (typically 1 or 2 weeks for example). In order to register, you will need to click Register next to the appropriate Marathon Match event within the Active Contests list, agree to the rules of the event and you may need to answer a survey question. Once registered, you may view the problem statement for the Marathon Match event by clicking the Problem Name from within the Active Contests list. Problem statements will be made available to all members, however you may not submit a solution until you are registered for that specific event.

The Phases of a Marathon Match Event

The Submission Phase

During the submission phase, competitors are able to submit code for the current event. There are two types of submissions that may be made during this time: Example Test and Full Submission. Example tests are a small (typically 10 or so) set of test cases. Information about these test cases is provided with the problem statement, and competitiors are given details for each test case, including raw score and runtime. Example tests may be run not more than once every 15 minutes, and cannot be run if there is a pending request (not yet completed) already in the queue. A full test tests the solution against a larger set of test cases. The only feedback to competitors following a full submission is combined/total score for the set of test cases. The scores resulting from full submissions are shown in the leaderboard throughout the match.

The System Testing Phase

After a competition completes all full submissions will be placed on a queue for automated system testing. During system tests, each submission will be run against a larger set of test cases and be issued a final score. Only this final score will be used to determine final rankings.

Getting the Status of Other Competitors

At any time during a Marathon Match event, TopCoder members may view the latest standings of that event. This will show the current rank and provisional score (for the latest submission) for each member who has registered for that event and the number of submissions they have performed during the event. Clicking on the submission count will display the date, and time of each submission for a given participant.

Provisional Scoring vs Final Scoring

During the event, submissions are tested against a set of test cases which, together, provide a provisional score for that submission. Following the conclusion of the round, all submissions are run against a larger set of system test cases, which are used to calculate the final score.

Getting Help

Each Marathon Match event will have its own forum available for problem statement clarifications and discussion. It is important to understand that due to the competitive nature of the event, such discussion must be limited, during the time in which the event is ongoing. In particular, forum posts which reveal details about the problem, possible approaches to a solution, or non-trivial examples not already made public in the problem statement itself, are prohibited. Such posts potentially provide an advantage to some subset of the competitors, and are grounds for a suspension from TopCoder. If it is necessary to ask a question that might be specfic to an individual solution or might reveal details about the problem, members should instead send an e-mail to support@topcoder.com.

Determining Score

There are several types of scores to be considered in a marathon match. For each test case, a competitor's submission will be assigned a raw score. This raw score is typically a relative measure of how "well" a solution performs. This will be defined within the problem statement, and may include things such as, but not limited to, how close to optimal of a return is produced, or runtime of the solution. For full submissions and system tests, the set of raw scores is combined into a final score. The manner in which this is calculated is likewised defined in the problem statement. The most common methods are simple summation of raw scores, or summation of relative scores (that is, the sum of your_score/best_score for each test case). The details of how the score is calculated should determine the approach a competitor takes to working on a problem. It is important to note that the type of solution which obtains the best score may not always be the same as what might otherwise be considered the optimal approach. For example, on a problem that uses runtime in the scoring formula, it may be better to have a solution that runs very fast, even at the cost of some accuracy.

Rating Changes

Following the conclusion of each competition, ratings are recalculated according to the same method defined for algorithm contests.

Note: In some cases, specific events will not be rated, particularly those which run on a third-party platform or non-standard hardware. Those events typically have a sponsor that often offers a prize pool for the top several finishers instead.

Web Site Statistics

Once the submission phase of a Marathon Match event has ended, the final results will become available by clicking the Results link. Competitors will be able to see the test cases, other competitors' submissions, and results.

Using Pre-Written Code

Many TopCoder participants find it useful to create code libraries for situations that commonly arise in TopCoder competitions. Doing such is perfectly legal - as long as the code used has been entirely authored by you. Use of any code other than that which has been authored by you is cheating (and you know how we feel about cheating). Keep in mind, however, that onsite rounds of TopCoder advancements tournaments are handled differently. On-site finalists of TopCoder advancement tournaments are not allowed to bring anything "on stage" - including code libraries.

In some Marathon Match events, you may be provided with code that is useful for test case generation, problem visualization, or offline testing. It is assumed that you are free to use any of this code in your submission.

Cheating at TopCoder

Cheating is taken seriously at TopCoder. There are a number of ways in which you could cheat, and have your account deactivated by TopCoder.

Collaborating in any way with anyone else (member or not) during a rated event is considered cheating. This includes discussing problem statements or solutions at any time until the conclusion of the submission phase.

Using multiple accounts to participate in a match is considered cheating.

Registering a new account for the purpose of resetting your rating is considered cheating.

Purposefully performing poorly during a rated event with the intention of artificially lowering your rating is considered very poor sportsmanship - and may result in account deactivation.

Posting in the forums any code, solutions, links, or any problem specifics that could aid other competitors is possible grounds for suspension.

Obviously, TopCoder cannot identify all malicious behavior (we try hard, though), so we do rely on each member's sportsmanship and integrity.

These comments are prompted by the post of przemek.nowicki on the latest MM discussion.

Per Mr Nowicki:

I have been competing in marathon matches long enough to consider myself a veteran (well, I couldn't devote as much time to

the TC competitions I wished I could) and one thing that bothers me is the struggle the new participants go through.

During the contest we are afraid to help because the line between what's allowed and what's not is rather thin. I have the

following suggestion.

A marathon contest forum usually opens up with the statement from admin reminding us that rules are to be followed, cheating

is not allowed etc. How about including another post where the following popular questions will be, if not fully answered

then at least pointing the newcomers to the helpful sources ?

The popular questions I have in mind are the following.

1. The meaning of time limit (per test case, only time spent in your code counts)

2. It is OK to study the visualizer's code

3. Some help in setting up the driver for the visualizer

4. Some help to clear C++ coders confusion regarding the signature of the method

I know that writing help documents is tough ... so maybe some relaxations of the contest rules is possible? For instance, why

not allow to post code snippets showing how to set up the driver for the visualizer?

--------------------------------------

Here are some of my thoughts:

1. I believe it is ok to share code between MM's, Yes? If yes, one way to interpret this is that whatever helps others in a general sense (i.e., applicable to all MM's) is OK but that which helps on a specific MM is not OK.

2. I'm not sure if it's a topcoder objective, but it seems to me that encouragement to learn additional programming languages is a potential benefit of participation. Therefore I suggest that a "Rosetta Stone" of stub code be provided in each of the allowed languages. This might be all it takes to get a participant to branch out and try participating in a different language. The provision of stub code could save time for potential participants and maybe avoid some newcomers quitting in frustration. After all, the challenge should be about programming the solution logic, not struggling with stub code.

Thanks for reading,
r2d1

Posted by r2d1 at Mar 07, 2010 15:31

Something I ran into in my second marathon match:

If the source code is too large, the submit proces fails without notification. It just returns to the 'standings' screen (if I remember correctly). The only way you know something might be wrong, is because you don't receive a notification email a few minutes later (and your score is not updated).

Perhaps a warning could be added to inform new competitors that this could happen, and what it means, and why it happens (i.e. that the uploaded file is simply too large, somewhere over 1 MB)? Or better yet, could the submit be modified to yield an error message if the code is too large?!

In itself this bug is not a big problem: a lot of code can fit in 1 MB, even large precomputed arrays, etc.. But it can be extremely problematic you if it happens near a deadline, and if your code just happens to have passed the file size limit, and you don't know that this limit exists at all. I was completely at a loss as to why I couldn't submit my code, and didn't have time left to run tests and figure out what the problem was.

Posted by wilcomoerman at Feb 19, 2011 08:45

le meme probleme trop grand bog ???

Posted by adnq10 at Jan 22, 2013 17:42

ok

Posted by shuwenhe at Nov 13, 2011 03:40

can anyone tell me ...whether we need to submit the entire code source we just wrote r just the methods they asked for in the marathon match??

Posted by virajith at Sep 10, 2012 12:27