- Who is Eligible 谁是有资格当选的
- How to Register 如何注册
- How it Works 它是如何工作的
- How to Win 如果赢得比赛
- How to Track Your Performance 如何跟踪你的工作
- How to Be a Spectator 如何成为一个观众
- How to Practice 如何练习
- How to Ask Questions During the Contest 如何在比赛中提问问题
- How to Interact With Other Participants 如何与其他参赛者相互影响
- How to Advance to the Finals 如何发展前进到决赛
- Prize Overview 奖金预览
Who is Eligible
You are eligible if you meet the following requirements at the time of registration:
- You are 13 years of age or older (only those who are 18 years of age or older as of November 6, 2009 are eligible to attend the onsite finals.)
- 大于13岁
- You are not a current employee/intern of Google Inc., an employee of any Google affiliate or subsidiary.
- 不在跟google有关的机构工作
- You are not an immediate family member (parent, child, sibling, or spouse) of, or living in the same household as, a Google employee or an employee of any Google affiliate or subsidiary; and
- 家中有人和google有关系也不行~~
- You are not a national or resident of any of the following countries or provinces: Burma (Myanmar), Cuba, Iran, North Korea, Quebec, Sudan and Syria, or anywhere where the contest is prohibited by law. Burma (Myanmar), Cuba, Iran, North Korea, Sudan, and Syria are restricted by US export controls and sanctions programs and are therefore not eligible to participate in Code Jam. Google reserves the right to relax any of these restrictions if permitted by law before the start of the Qualification Round.
- ……有些国家的网络不怎么好使,如果这些国家的人民也不好参加这个活动。
For more details on the Eligibility rules and regulations, please review the Terms and Conditions.
How to Register
You can register for Google Code Jam at http://code.google.com/codejam/contest/registration. Registration opens at 23:00 UTC (4:00 PM Pacific Time (PT) in the Americas) on Monday, August 10 and you can register any time until the end of the 26-hour Qualification Round (Friday, September 4 at 01:00 UTC). Advancement from the Qualification Round is necessary in order to participate in Round 1.
How it Works
-
Duration
-
Contests may vary in duration, ranging from 2 hours to 4 hours with the Qualification Round lasting 26 hours.
Environment
-
You can use any programming language to solve the problems, using any development environment or text editor, as long as the compiler or interpreter you used for that language is freely available and easy to download and use. Time-limited trials for compilers and interpreters are disallowed. Visual Studio is acceptable as a compiler, since there's a free version of (almost the same) compiler available, Visual Studio Express. Google reserves the right to make further exceptions on a case-by-case basis.
The Problems
-
Each contest consists of 3 to 6 algorithmic problems. The problems will be listed in the panel on the top left side of the page. Click on a problem link to view the different problem statements, which will appear in the middle of the page.
The problem statement will be an HTML file, possibly containing images. It will include one or more sample test cases and will have two input/output sets, one small and one large. There will be an assigned point value next to each input/output set.
How to Solve the Problem
-
Download and Re-download Zipped Input Files
Download Inputs
-
For both the small and large inputs, you can download either a text file or a zipped file. The text file will appear as a link next to the small or large input. Zipped files are a great option if you are experiencing a slow network connection. The zipped file appears within the 'Download' section of the 'More Options' drop-down menu.
The timer begins immediately after you download an input file. You have four minutes for the small input/output sets and eight minutes for the large input/output sets.
If you do not correctly solve the small input/output set or if you run out of time, you have to download a new input file. The input files are randomized, so you may receive a new input file with different test cases.
You have one chance, lasting eight minutes, to solve the large input/output set. You may resubmit during this time. If you run out of time, you cannot download another large input file.
Re-download Inputs
-
You may re-download your input file for the small and large inputs any time during the four- or eight-minute time period. You will receive the same input file during this time.
Submission Rules and the Judge
-
Each problem will have two input/output sets, one small and one large. Small and large sets have different submission rules:
- Rules for Small Input/Output Sets: After downloading your small input file, you'll have four minutes to run your program on our input and submit the output (along with your source code). If you take too long or output the wrong answer, the attempt will be marked as incorrect. You may attempt to solve the input/output set again, but you'll need to download a new input file (which may have different test cases). You'll know immediately if your answer was correct.
- Rules for Large Input/Output Sets: After downloading the large input file, you'll have eight minutes to submit the output (along with your source code). There is only one input file, but you can submit as many times as you wish during the eight minutes. Your last submission counts as your final answer. You'll find out if your answer was correct after the contest.
*Note: You may experience latency issues between your computer and our servers and are therefore advised to submit with an adequate amount of time remaining in your four- and eight-minute periods.
How You Can View Your List of Submissions
-
Click the "View my submissions" link on the left panel. This page lists the input, output and source code of each of your submissions. For submissions to large input/output sets, only your most recent submission will be available. You can only download your output and source code if you have submitted them.
How We Will Judge Your Submission
-
- Differences in whitespace are ignored. Every non-empty sequence of whitespace characters is treated as a single space. This means that Unix, Mac, and Windows endlines are all acceptable.
- Leading and trailing whitespace on each line is ignored. The remaining, non-empty lines are compared pairwise, using rules 1 and 3.
- Two floating point numbers are considered equal if their absolute or relative difference is smaller than 1e-6. This does not apply to integers. Two integers are considered equal only when they are exactly equal.
Source Code Submission Rules
-
Uploading Source Code
You must upload all source code used to solve each input/output set at the same time you are submitting your solution. You cannot submit your source code files after the contest. At the end of the contest, any user can view all of the source code submitted. Both the administrators and other contestants should be able to reproduce your output using your source code.
Deliberately obfuscated source code and empty source code files are not allowed. Google reserves the right to disqualify any submissions that we believe do not comply with the rules.
File Type for Source CodeYou must submit plaintext or zipped plaintext for the source files. The maximum file size that you can upload is 100kB. You can upload multiple files, or you can upload a zipped source code file as long as the contents do not exceed 1MB.
Solving Problems by HandIf you solve a problem either fully or partly by hand, please submit a text file explaining that you solved the problem by hand. We reserve the right to disqualify any submissions that we believe do not comply with the rules.
Solving problems using methods other than a programming languageIf you use specific software to solve a problem, specify this in the file. That software is held to the same restrictions as compilers and interpreters as described above. Also, please provide any input scripts you wrote for the software used (e.g., mathematical software scripts, Open Office spreadsheets).
The program does not necessarily need to produce the output automatically, so it can be interactive. If you wrote an interactive commandline script, you should submit all commands used to solve the problem, e.g. a linux commandline with awk, Hugs commands, Octave interpreter commands, shell commands, etc.
Solving problems using several programsIf you used several programs to solve a problem, even user-assisted programs, please submit all of the programs.
Solving problems using standard and non-standard librariesYou may use standard libraries, such as Boost, and other open source libraries. If you use a publicly available library, you may submit a link to the library's website rather than including the contents of the library in your source code submission.
You also may use code from non-standard libraries, such as coding libraries from your school's ACM ICPC team, as long as you have license to use them.
You will need to upload all code used in solving each input/output set, whether you are using standard or non-standard libraries. If the source code and the zipped version of the library are larger than 1MB, you may provide a link to the library as long as the library is accessible after the contest.
How to Win
-
Point Structure
-
Each problem has set point values for its small and large input/output sets. When you solve a set correctly, you get the number of points indicated. The contestant with the highest score wins. Points scored in one round are used only to determine standing in that round; getting points in Round 1 will not help you win Round 2.
Penalty Time and Ties
-
If there is a tie in points, the contestant with the lowest penalty time wins.
- Penalty Time = Submission time of the last input you correctly solve (time is measured from start of contest) + four minutes for each incorrect small submission (only for small inputs you eventually solve)
-
For example, if you have made the following submissions:
[17m10s] wrong submission for A-small
[17m35s] wrong submission for A-small
[18m15s] correct submission for A-small (10 points)
[29m30s] wrong submission for B-small
[30m59s] correct submission for C-small (30 points)
[45m11s] correct submission for A-large (15 points)
then your score will be 55, with 53m11s of penalty time (45m11s + 2*4m)
How to Track Your Performance
-
You can monitor performance in four different areas of the competition arena:
- status messages
- submission panel
- mini-scoreboard
- full scoreboard
Status Messages
-
Once you have submitted a solution to a small input set, a message displays above the problem telling you if your answer is correct or incorrect. If you do not answer a question correctly, you will learn that it is incorrect, but you will not be told further details about the incorrect submission (such as which test cases were incorrect).
The results for the large inputs will be available at the end of the contest.
Submission Panel
-
The submission panel (on the left of the problem interface) summarizes the submissions you and your competitors have made. Each problem appears in the panel, along with the problem's point value and submission status. For small input/output sets, you will see the ratio of correct submissions for all participants and an updated status for your submissions.
For example, if you solve the question correctly, your status changes to 'Correct'. Otherwise, you will see '1 incorrect attempt', '2 incorrect attempts', etc. Once you solve a question correctly, the status changes to 'Correct.'
Since the solutions for the large input/output sets will not be judged until the end of the contest, you will see four states:
- No submissions - Displays if you have not downloaded the large input/output set
- In progress - Displays if you have downloaded the large input/output set and the 8 minute timer is counting down
- Time Expired - Displays if you have downloaded the large input/output set, but did not submit a solution
- Submitted - Displays if you have downloaded the large input/output set and did submit a solution
After the contest, the submitted state will change to either 'correct' or 'incorrect,' depending on how you did.
Mini-Scoreboard and Your Score and Rank
-
Below the submission panel, a mini-scoreboard displays the competitors with the highest scores. If you are one of those competitors, your nickname will apear in the mini-scoreboard. Your rank and score always appear in the top right-hand corner above the problem interface.
Full Scoreboard
-
The full scoreboard shows statistics for all users who have submitted at least one correct solution. You have the option to select the information that you want to view on the scoreboard. You will always see rank, points, and penalty time for each contestant. If you check 'Time Submitted', you will see the amount of time it took for each contestant to solve each input/output set. If you check 'Number of Submissions', you will see how many attempts it took for users to solve the small input/output set.
To view statistics for your friends, click the 'Friends' tab on the full scoreboard. Then, enter your friend's nickname in the search box on the right (above the scoreboard), and click 'Add Friend.' You can also add a friend by clicking the star next to his or her username on the scoreboard. To view statistics for the competitors closest to your rank and score, click the 'Closest Competitors' tab.
How to Be a Spectator
You do not have to register for the Google Code Jam to view the problems and scoreboard. Five minutes after the Qualification Round begins, you may enter the competition area by following the contest title link on the front page. You can view the problems, but you cannot download the inputs for these problems or submit a solution. You can see participants on the scoreboard, but you will not see a tab for 'friends' or 'closest competitors'.
If you do not advance to Online Round 1, 2 or 3 or the onsite finals, you can enter the Code Jam contest as a spectator after the contest begins. Like spectators in the Qualification Round, you will not be able to submit solutions for the problems. You will be able to see the 'Friends' tab as an option on the scoreboard.
How to Practice
Before the contest begins, you can practice on problems from previous contests. It is a good idea to check out the competition arena and get comfortable with the interface, competition format, and types of problems that you will encounter in the contest. Click on any previous contest inside our competition section to practice on the problems from that competition. During practice there's no time limit to submit the problems, you can download the inputs and submit your output how many times you want.
You also can check out old problems from the TopCoder and ACM ICPC contests to brush up on your coding skills.
How to Ask Questions During the Contest
Google administrators are available during the contest, as well as 30 minutes before and after the contest, to answer any questions that you may have. Just click 'Ask a question' and select from the drop-down whether you have a general question or a question about a particular problem. Please ask your questions in English.
An administrator will respond to your question, either to you directly or to all contestants. When the administrator responds, a number in parentheses next to your 'Ask a question' link will indicate how many unread messages you have.
If the web site is behaving unexpectedly, feel free to ask a question. Make sure to include any error messages that you see.
When asked about the contest problems, the administrators will usually politely reply with "Please read the problem statement." Administrators will not reveal the particular test case for which your code gave the wrong answer, nor will they give hints on where to find bugs. If a problem statement is misleading, ambiguous or wrong, the administrators will typically broadcast the response to all contestants.
How to Interact With Other Participants
-
Collaborating With Other Participants
-
You are not allowed to collaborate with other participants or with anyone else, for that matter, during a contest. This includes discussing, sharing, or posting the problem statements or solutions. Any contestant found cheating or attempting to cheat will be disqualified.
If you suspect another contestant of cheating, please report any claims.
Chatting With Other Participants
-
You can chat with other competitors using the Channel
#gcj
on Freenode.First you need a client. One convenient client is Chatzilla, which is an add-on to Firefox. Many other clients can be used for basic IRC chatting.
Now, you need a connection. First connect to a Freenode server. There are many servers to choose from, but we'll show you how to connect to chat.freenode.net.
- Run:
/server chat.freenode.net
from inside your client. - Then type:
/join #gcj
-- and you are in!
Finally, you need to register your nickname.
You can change nicknames using the command /nick 'nickname'. To register your current nickname, just type:
/msg nickserv register 'password'
.To identify yourself as a registered user, log on to IRC using the same nickname and type:
/msg nickserv identify 'password'
to identify yourself as the owner of that name.What if your nickname has been taken the next time you sign on?
If your nickname has been taken the next time you sign on, read the following instructions to get it back.
- Type:
/msg nickserv release 'nickname' 'password'
. This locks the nickname so no one else can use it, and boots existing users. - Type:
/msg nickserv release 'nickname' 'password'
. This unlocks your account so you can use it. - Finally use the usual
/nick 'nickname'
to reclaim your nickname.
- Run:
How to Advance to the Finals
-
Qualification Round
-
The contest will start with a Qualification Round on Wednesday, September 2, 2009 at 23:00 UTC (4:00 PM PT). This round will run for 26 hours, ending on September 4, 2009 at 01:00 UTC (6:00 PM PT), and will consist of three problems. You can log in at any time to participate in the contest. If you successfully solve one small and one large input from any of the three problems, you will advance to Online Round 1. There is no limit to the number of advancers.
Online Round 1
-
Online Round 1 consists of several sub-rounds offered at different times to ensure that you have ample opportunity to participate in this round no matter what time zone you're in. The three sub-rounds in Online Round 1 will take place on Saturday, September 12 and Sunday, September 13. Note: The sub-round times are listed in UTC. Thus, the actual dates of the sub-rounds may be different in your time zone.
Each advancer will be able to participate in a maximum of either two or three contests for Round 1, as announced by Google over email after the conclusion of the Qualification Round. During registration, you'll have been asked for your preferred contest times in Online Round 1. You can change that preference until Saturday, September 5, 2009 at 00:00 UTC (Friday, September 4, 2009 5:00 PM PT). You only have to participate in one of your assigned sub-rounds. We'll endeavor to register contestants for their preferred sub-round times, but cannot guarantee that all contestants will received their preferred sub-round times. Note: Once they have been assigned, you will not be able to change your sub-round dates or times.
The top-scoring 1000 finalists from each sub-round, totaling 3000 skilled programmers, will advance to Round 2. If you advance to Online Round 2 from your first assigned sub-round, you may not participate in your second assigned sub-round. If you do not advance to Online Round 2 from your first assigned sub-round, you may participate in your second assigned sub-round for a final opportunity to advance to Round 2.
Online Rounds 2 and 3
-
The top 3000 participants from Online Round 1 will participate in Online Round 2, which will begin on Saturday, September 26, 2009 at 16:00 UTC (9:00 AM PT) and will end on Saturday, September 26, 2009 at 18:30 UTC (11:30 AM PT).
The top 500 participants from Online Round 2 will participate in Online Round 3, which will begin on Saturday, October 10, 2009 at 16:00 UTC (9:00 AM PT) and will end on Saturday, October 10, 2009 at 18:30 UTC (11:30 AM PT).
Onsite Final Round
-
The competitors with the top 25 scores from Round 3 will qualify for the onsite final round.
Prize Overview
-
What you can win
-
The top 500 scoring participants in Round 2 will receive a Google Code Jam t-shirt.
The top 25 eligible finalists from Round 3 will be flown to Mountain View, California to compete in the onsite finals. The onsite final will happen on November 13, 2009. Travel and accommodation will be covered by Google.
The 25 finalists who attend and compete at the onsite finals in Mountain View will receive the following prizes:
Competitor(s) Prize 1st Place $5,000 2nd Place $2,000 3rd Place $1,000 4th – 25th Place $100
Please see the Terms and Conditions for more details.