Cursos, Investigación y Recursos en Inteligencia Artificial

INICIO    CURRÍCULO    CONTÁCTANOS    MAPA DEL SITIO

 

Inicio

Alien Numbers

Always Turn Lef

Egg Drop

Shopping Plan

       

code.jam

 

Toda esta información fue obtenida desde: http://code.google.com/codejam/

 

About Code Jam.

Do you enjoy solving tough problems and grappling with technical challenges? Then enter Google Code Jam!

 

Google Code Jam is a coding competition in which professional and student programmers are asked to solve complex algorithmic challenges in a limited amount of time. The contest is all-inclusive: Google Code Jam lets you program in the coding language and development environment of your choice.

 

Google Code Jam begins in July and continues in August, when you will compete in online rounds against contestants from around the world. The Top 500 participants will advance to onsite competitions at a local Google office to compete against those in their region (Asia Pacific; Europe, Middle East and Africa; and the Americas). The Top 100 will participate in the final round at the Google Headquarters in Mountain View, California on Friday, November 14.

 

Don't be left out! Make sure to register between June 17 and July 17, and show your coding creativity in Google Code Jam.

 

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 September 18, 2008 are eligible to attend the local onsite round and the onsite finals.)

  • You are not a current employee/intern of Google Inc., an employee of any Google affiliate or subsidiary.

  • 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

  • You are not a 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.

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 4:00 p.m. UTC (9:00 a.m. PT) on Tuesday, June 17 and you can register anytime until the end of the 24 hour Qualification, 11:00 p.m. UTC (4:00 p.m. PT) on Thursday, July 17. 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 1.5 hours to 3 hours with the Qualification Round lasting 24 hours.

Environment

You can use any programming language to solve the problems, using any development environment or text editor.

The Problems

Each contest consists of three to six 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, Re-download, and Pre-download Zipped and Encrypted 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.

Pre-Download Inputs

You can pre-download encrypted input files for the large input/output sets. You should consider this option if you have a slow network connection.

The encrypted input files appear within the 'More Options' drop-down menu next to the large input files. Once you pre-download the encrypted inputs, you need to download the decryption key.

Decryption Key

The decryption key appears within the download section of the 'More Options' drop-down menu. The eight-minute timer will begin running as soon as the decryption key finishes downloading. You can re-download the decryption key during the eight-minute time period.

To perform the decryption, you'll need decryption software for your particular operating system:

Windows

One quick solution is to download GPG installer from this website: http://www.gpg4win.org/

Linux

Depending on your distribution, all you need to do is install the GnuPG package.

Mac

You can get the Mac GPG from here: http://macgpg.sourceforge.net/

After you have GPG installed, you can start decrypting the files. To decrypt the file 'A-large.in.enc' and output the decrypted file to 'A-large.in', use the following command on the command line:

gpg --output A-large.in -d A-large.in.enc

Next just enter the key when you are asked to enter a passphrase. That's it!

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 and 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.

File Type for Source Code

You 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.

How You Can View Your List of Submissions
How We Will Judge Your Submission

 

  1. 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.

  2. Leading and trailing whitespace on each line is ignored. The remaining, non-empty lines are compared pairwise, using rules 1 and 3.

  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 Code

You 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 Hand

If 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 language

If you use specific software to solve a problem, specify this in the file. Also, please provide any input scripts you wrote for the software (e.g., mathematical software scripts, Excel spreadsheet).

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, Matlab interpreter commands, shell commands, etc.

Solving problems using several programs

If 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 libraries

You 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 ACM ICPC, 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.

Penalty Time and Ties

If there is a tie in points, the contestant with the lowest penalty time wins.

Penalty Time = Total 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 problems 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 points (45m 11s + 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 most up-to-date Top Scores. If you have a top score, your nickname appears in the mini-scoreboard. However, 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 You Can View Your List of Previous 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 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 clicking on the 'spectator' link on the front page below the registration button. 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 rounds, you can enter the Code Jam contest as a spectator after the contest begins. Like the spectator for 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 sample contests. Since this competition differs from previous Google Code Jams, 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 ACM-ICPC and TopCoder contests to brush up on your coding skills.

 

How to Ask the Administrators Questions

Google administrators are available during the contest and 30 minutes before/after a 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 displays next to your 'Ask a question' link, indicating how many unread conversations you have.

 

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.

  1. Type: /msg nickserv recover 'nickname' 'password' . This locks the nickname so no one else can use it, and boots existing users.

  2. Type: /msg nickserv release 'nickname' 'password' . This unlocks your account so you can use it.

  3. Finally use the usual /nick 'nickname' to reclaim your nickname.

 How to Advance to the Finals

Qualification Round

The contest will start with a Qualification Round on July 16, 2008 at 11:00 PM UTC (4:00 PM PT). This round will run for 24 hours, ending on July 17, 2008 at 11:00 PM UTC (4:00 PM PT), and will consist of three problems.

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 sub-rounds in Online Round 1 will take place from Friday, July 25 to Thursday, July 31.

After the completion of the 24 hour Qualification Round, we'll email the advancers, requesting that they register for three preferred provided contest times in Online Round 1. Advancers must register for their assigned times by: by Monday, July 21 at 1:00 PM UTC (6:00 AM PT).

Each advancer will be able to participate in a maximum of two contests for Round 1. You only have to participate in one of the two 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: You'll not be able to change your assigned sub-round dates or times.

The top scoring finalists from each sub-round, totaling 2520 skilled programmers, will advance to Round 2. If you qualify to Round 2 in your first assigned sub-round, you may not participate in your second assigned sub-round. The next contest you participate in will be Online Round 2.

Online Rounds 2 and 3

The top 2520 participants from Online Round 1 will participate in Online Round 2, which will begin on Saturday, August 2, 2008 at 4:00 PM UTC (9:00 AM PT) and will end on Saturday, August 2, 2008 at 6:00 PM UTC (11:00 AM PT).

The top 1000 participants from Online Round 2 will participate in Online Round 3, which will begin on Saturday, August 9, 2008 at 4:00 PM UTC (9:00 AM PT) and will end on Saturday, August 9, 2008 at 6:00 PM UTC (11:00 AM PT).

Local Onsites

The competitors with the top 500 scores from Round 3 will advance to the local onsite rounds, with at least 50 advancing from each region. The local onsite rounds will be divided into three regions: Europe, Middle East, and Africa (EMEA); the Americas; and Asia Pacific. Participants will be sent to a Google office in their region. All local offices within a region will compete at the same time on the same problem set. For example, the contestants competing in Zurich, London, Krakow, and Munich will all compete on the same problems at the same time on Monday, October 6.

The Top 100, with no less than 10 from each region, will qualify for the onsite final round.

 Prize Overview

What you can win

The top 500 scoring participants in Round 3 will receive a Google Code Jam t-shirt.

The top 500 participants in Round 3 will participate in the local onsites at a Google office in their region. Travel and accommodation will be covered by Google.

The Top 100 finalists from the local onsites will be flown to Mountain View, California to compete in the onsite finals. Travel and accommodation will be covered by Google.

All 100 finalists who attend and compete at the onsite finals in Mountain View will receive the following prizes:

Competitor(s)

Prize

1st Place

$10,000

2nd Place

$5000

3rd Place

$2500

4th – 10th Place

$1500

11th – 30th Place

$1000

31st – 50th Place

$750

51st – 75th Place

$500

76th – 100th Place

$250

 

In addition, if you are the 1st place winner, you'll receive ten free lunches (for you and a guest) at Google. Whenever you are in a city with a Google office that provides lunch from November 14th 2008 to November 14th 2009, you can check out the office with a guest and be hosted for lunch (maximum of 10 visits).

Please see the Terms and Conditions for more details.