Friday, April 7, 2006

Google India Code Jam 2006 Day 2, The Contest Begins!!

We headed to the Reliance WebWorld (an Internet Cafe) to compete for the Championship Round.




Using bus (just like last year), we went to the Reliance WebWorld internet cafe.


The TopCoder admin, known as TheFaxman, introduced the rules and the extended duration for the Final Round.


This is the computers preconfigured for contest.
Only 5 applications can and allowed to run in this computer: The Arena, STL Doc, JavaDoc, VIM, Emacs.

The Coding Phase!

Now the contest begins!! We have to solve 3 problems of different points (250, 500, and 1000 points). For you who're curious what's the contest problems look like? Click on the problem name to see the problem statement (but remember not to copy it for other use!). Below is my discussion for each problem:

  1. Problem 300: InverseLca

    This problem is about Tree Data Structure. We are given a matrix that represents the Least Common Ancestor for all pairs of nodes and we should return the parent of each node. This problem takes me a lot of time to code! I submitted after 30 minutes I opened the problem, that was very slow coding!

    After I opened the 500 point problem and submitted it, I go back to this problem since I'm not sure that my code was free of bug... so I made a testcase with 10 nodes, create the LCA matrix and input it to the Arena's test case then run it... Jebret... whatt.. -2 -2 -2 ??? The value -2 was not supposed to be returned! I realized that my code Indeed has bugs in it... but it's too late, It's only 4 minutes remaining. I never know where was my bug.

    After the Coding Phase has ended, there's a Challenge Phase. Where you can view your competitor's source codes and challenge it using your testcase to make the program return incorrect result. Since I already got my testcase with 10 nodes, and I have faith that there are people out there that was as careless as I was, so I challenged any code that is too long or too simple or too suspicious with my 10 nodes testcase :D. It appeared that I made 7 successfull challenges out of 20 challenges (YUP! 20 Challenges! I'm a brute-force challenger at that time). In the end, I only got +25 points. I really dissapointed that I didn't challenge and look at the standings simultaneously. If only I looked at the standings, I would've stopped challenging after I got 4 straight successfull challenges (this will bring me to the TOP 10).

  2. Problem 500: ColoredDominoes

    This problem is about eficient brute force. You were given a list of dominoes and their colors on both of the halves. You wanted to re-color the dominoes so that all dominoes has the same color. (for the detailed problem statement, click on the link above)

    The trick to solve this problem is to do a brute force only for the unique colors. If we count it carefully, the input parameters implicitly restrict the number of different colors to be 1000, not 10000. So an O(n^2) algorithm is sufficient. This problem is a lot easier than the Problem 300 since the solution quite easy to be found : Brute Force + Greedy.

  3. Problem 1000: InterestingStrings

    I read the problem statement, then I look at the time... 30 minutes left... Ahh.. just forget this problem, I'll never make it on time. This is the time when I opened back my 300 points problem and make a testcase of 10 nodes and realized that my 300 points was wrong :( and didn't have time to fix it.

The Challenge Phase

I don't remember how stressed I was when I knew that my 300 points will gone. Thinking of it, it burns me with and idea: I have the test-case that failed on me, why don't I use it to challenge the others? :D HeHeHeh! Here it goes, my Brute-Force Challenges! I opened every 300 points problems that were available and immediately challenge it if I found it too long or too short or suspicious :D. During that time, probably because I was too excited opening and closing the Source code, My Arena went TIMEOUT. It happened several times... reducing my opportunity to challenge! I only (yeah only!) made 20 challenges. If only there wasn't any Timeout (and I didn't have to relogin), probably I can made 25 challenges! (and probably my points would be minus... ahahahah).

And so the contest has ended, we were allowed to take home the Google Mouse Pad and Google Pen :D How generous Google was!


We then went back to the Park Hotel to get some rest.


Yo yo yo in the bus.. we take pictures again.


In the Park Hotel, all Indonesian participants assembled in Prima Chairunnanda's Room (106) and order some dessert.



Next : Le Meridien and Google Tech Talk

Back to Home



Google India Code Jam 2006 Day 2, Breakfast

Early in the morning I woke up do all necessary things people do in the morning then put Google T-Shirt on.


Me taking picture of me whenever I see mirror during my way down from my room to the breakfast place (Monsoon)


From the Ilham's place, we can see the Google India Code Jam logo is placed at the pool side.


Itadakimasu...



This is the room where Google Tech Talk about Intro to Google Culture and Team Event was held.


This is Jeanne Williams, she helped me a lot in getting me and the others for VISA and Ticket.
She is nice and very-very friendly. Thank you Jeanne! I really appreciate your help for my ticket before :)

After breakfast, we were introduced to Google's culture in the Google Tech Talk session.


The presenter was Arvin Jain. He talked about Google mission, culture, team event, 20% rule, etc...




We sat back and watched the presentation.


After the Google Tech Talk, we had a small game at the pool side.
Annie Driscoll ended the presentation and moved us to the pool side.



Next : The Contest Begins!!

Back to Home



Thursday, April 6, 2006

Google India Code Jam 2006 Day 1, Take off to Bangalore, India


Left pic: It's me, Felix Halim; Middle pic: Me with David Santoso Anggakusuma; Right pic: Me with Pascal Alfadian

We transited to Singapore and along with the other contestants flew to Bangalore, then register to the Park Hotel (same with last year).


We registered to the Park Hotel to get the Room Numbers.

Here is all 8 Indonesian participants.
Standing (left->right): Felix Halim, David Santoso Anggakusuma, Ilham Winata Kurnia, Hanny Yulius Limanto, Pascal Alfadian
Sitting (left->right): Ardian Kristanto Poernomo, Fajar Maulana Firdaus, Prima Chairunnanda

After registered to the Park Hotel, we registered again to the Google Code Jam.

We register to get a Google Bag (along with the content) and a Name Tag.

We headed to our hotel room, I got room number 418. Like last year, I shoot the mirror.


I was in room 418


The bed, and room architecture was still the same with last year

The Google Bag and its contents.

This was near midnight, I was exhausted and fell asleep easily. The bathroom was nice, btw.



Next : Day 2, Breakfast (April 7, 2006)

Back to Home



Google Code Jam India 2006

Google Code Jam India 2006

This is the second time I competed in Google Code Jam India (see last year Google Code Jam India 2005). The format of the competition was still similar with last year. There are 3 rounds total: Qualification Round (14,000 participants), Online Elimination Round (500 participants), and the Onsite Final Round (50 participants). See the Official List of the Advancers for each of the round.

The Qualification Round was held on March 20-21, 2006. There are 5 sets of problems randomly assigned to the 14,000 registered participants. The qual went a whole day but the coding time only last 1 hour after the qual problem was opened in the Arena. There was so many cheaters were caught and disqualified by the experienced TopCoder admins (Google uses TopCoder platform to run the competition).

The Elimination Round was held on March 24, 2006. The top 500 participants that passed the Qualification Round may compete in this Elimination Round. The format of the elimination round is similar to the weekly SRM held by TopCoder. All participants must login and register at the specified time and compete together. The coding phase last for 75 minutes, all participants were given 3 problems with different points. There was a challenge phase after the coding phase where all participants can look their competitors' source code and "challenge" it. If the challenge is successful, the challenger got +50 points otherwise the challenger losses -25 points. Participants are ranked solely by the number of points.

The Onsite Championship Round was held on April 7, 2006. The top 50 participants that passed the Elimination Round were invited to Bangalore (India) to compete in this Onsite Championship Round. The duration for the Championship Round is longer than the usual 75 minutes (it was extended to 100 minutes). The 50 participants were split to two locations but they were all in the same room in the Arena. There are 3 problems given in this round (300 points, 500 points, 1000 points) just like the Elimination Round. During the challenge phase, many participants experienced a little inconvenience. The arena got timed-out several times and the participants must re-login again.

The winner of Google Code Jam India 2006 is the same as last year: Ardian Kristanto Poernomo from Indonesia.

Before and after the onsite championship round, Google had several techtalks. They explained the vision / mission of Google, the technologies that Google posses, the Google infrastructure / architecture, the Google culture, etc... Also Google gave the 50 onsite finalist opportunity to have interviews for job at Google. Last year, Google didn't offer interview for the 50 finalist.

This year, Google did a lot of improvements compared to last year. The events were well prepared and places were a lot bigger and nicer (Le Meridien) and they have iPod Nano as the surprise prize for all 50 finalist! I think in total, Google spent a LOT more money than last year to make Google Code Jam India 2006 a memorable event! GCJ is the best and most generous Programming Competitions I've ever had! Thanks GOOGLE!

Highlights


All 8 Indonesian participants. Left top: Fajar Maulana Firdaus; Bottom centre: Pascal Alfadian
Middle (left->right): Felix Halim, Prima Chairunnanda, David Santoso Anggakusuma, Hanny Yulius Limanto, Ilham Winata Kurnia, Ardian Kristanto Poernomo.

Indonesian Ranklist in the Championship Round (and their handle in the Arena):

  • 1st place - Ardian Kristanto Poernomo (ardiankp)
  • 5th place - Prima Chairunnanda (CrazyScratcher)
  • 8th place - Ilham Winata Kurnia (ilham)
  • 17th place - Felix Halim (felix_halim)
  • 18th place - Pascal Alfadian (p45c4l2000)
  • 20th place - Hanny Yulius Limanto (blue_quark)
  • 31th place - Fajar Maulana Firdaus (idos)
  • 47th place - David Santoso Anggakusuma (david_angga888)


The competition place and environment. It's an internet cafe.


The Computer used in the competition.


Left: The podium where the Google TechTalk and Awards Winner annoucement.
Right: TechTalk by Alan Eustace, the Senior Vice President, Engineering & Research.


And the winner is ... Ardian Kristanto Poernomo from INDONESIA.
The slide displayed "Singapore" because he resided in Singapore (NTU), but actually he is Indonesian.


The first, second, and third Winner: Ardian Kristanto Poernomo, Abishek Kumarasubramanian, Shreevatsa R.


The Google Event Organizers that made this event successful.
The lady in red: Jeanne Williams, and the lady in white: Annie Driscoll


Surprise surprise... All 50 finalist were given an iPod nano (4 GB) along with Google Code Jam certificate.



Detailed, day to day story

For a detailed, day to day life of the onsite final, below I present my (personal) story about it. I have pictures for the stories, thanks to my friend who lend me his camera, Tommy Harland. If you feel any of the write-up offensive, or you have any suggestion/feeback/concerns, or else you can contact me: felix.halim@gmail.com

Next : Day 1, Take off to Bangalore, India (April 6, 2006)