ACM-ICPC Asia Phuket Regional Contest 2013

Teams from UI (photo by Denny)

Teams from UI (photo by Denny)

This is my last ICPC regional contest in my life as a contestant, since this is my second ICPC regional contest in 2013 (after Jakarta site) and since I am in my final year in college (hopefully). I had competed in 6 regional contests before. As this is my last chance, I gave my best effort for this contest. I practiced a lot before departing to Phuket, mostly learning new data structures.  I really hoped that I would obtain the best result in Phuket.

On the last days before going to Phuket, I successfully learned and implemented a rare data structure called Heavy-Light Decomposition on trees. The information on this can be found here.

There were 3 teams from University of Indonesia that participated: +1 2.0, Sepiring Lhompat 2.0, and Algorythmists. These teams were chosen because we were in the top 4 (from UI) of ACM-ICPC Indonesia National Contest 2013, the qualification round for Indonesian teams for Jakarta site. Our coach rearranged the teams composition,  then sent 3 teams to Phuket site and 1 team to Danang site (Sepiring Ber2.0).


My team is +1 2.0, coached by Denny with the following members:

  • Alham Fikri Aji
  • Ashar Fuadi (me)
  • William Gozali


The contest was so intense. The problemset can be downloaded here. Here is the story…

[Read more…]


SRM 600 T-Shirt

It seems that TopCoder likes to give away T-shirts in every 100 SRMs. I failed to participate in SRM 500 because I overslept that time, so I was happy when I managed to participate in SRM 600. In this SRM, they will give T-shirt for the top 60 participants and for 60 random participants that do not manage to make it to top 60.

Indeed, I was more than happy because I managed to grab a T-shirt, in a dramatic way! Here is the story:

[Read more…]


Some Tips for Google Code Jam

The 2013 Google Code Jam has now started! I would like to share some tips that I think are very useful for competing in GCJ.

Change download location

In GCJ, you have to download the input files and solve them quickly. It is a great time saver if the input files are downloaded right to your working directory after you click “Solve X-Small” / “Solve X-Large”.

You can change the location in your browser setting. For example, in Chrome:

[Read more…]


Computer Festival 2012 Programming Competition

Computer Festival (COMPFEST) is an annual IT event held by Faculty of Computer Science, University of Indonesia. This event consists of Competitions, Seminars, Expo, and Entertainment. For more information, you can check the main website of Computer Festival 2012.

This year, I became the person-in-charge of Programming Competition of Computer Festival 2012. The competition was a standard ICPC-like programming competition. There were two categories: college and high school. The online qualification rounds were held in 8-9 September 2012, while the final rounds were held in 13-14 October 2012. [Read more…]


How I Became a TopCoder SRM Problem Writer

I have been writing SRM problems quite often in past months. It has been a very exciting experience for me. I would like to recall how I became a problem writer in this competition…

Member SRM 489

… so I would like to suggest you to write Div-2 part of Member SRM 489. If you agree,


That was my first approval statement from mystic_tc (Ivan) for writing an SRM. Yay! I received that email after I proposed a problemset for a Member SRM. Ivan posted a “Looking for Member SRM 489 writers” thread in the forum, then I tried to propose, and I was glad that the proposal was approved. I was really really happy that time.

For those who don’t know, Member SRM is actually a regular SRM whose writers and testers are not paid. It is voluntary for keeping 3 SRM per month. That was OK for me as what I want was the experience of working together with the admins to prepare an SRM.

I actually proposed a complete set of five problems, but it turned out that the Div-1 problems did not satisfy Ivan. Yes, when I read the problems now, I realized that they are very lame problems. Therefore, Ivan assigned me to write only the Div-2 part. The Div-1 problems were written by rng_58. [Read more…]


CodeSprint 2 Interview Street Problems Analysis

I participated in the second CodeSprint that was held in January 7 – 8 2012. I knew this contest from a link posted in a TopCoder forum thread. As far as I know, many companies will use the result of this contest to interview new employees/interns. Because I was in holiday after the final exams, I took part in this contest, maybe somehow by luck I could get interview from some companies 🙂

The contest had three types of problems: algorithmic, company, and real-world problems. The algorithmic ones are much like usual competitive programming problems. Company problems are set by some of the companies. Real-world problems are “real”, for example, one of them is creating a web service for resizing company logos.

During the 48-hour contest (yes, only 2 days), I managed to solve 6 algorithmic problems and 1 company problem. I ranked #38 overall and #2 in Indonesia (the first rank went to dolphinigle).

Here is an analysis on some of the problems. [Read more…]


ACM-ICPC Asia Manila Regional Contest 2011

Well, this is my third participation in an ICPC regional. This time we as Saklar Lhompat team participated in Philippines, in Manila site. This is also my second time to participate in a foreign site, as (unfortunately) Jakarta didn’t host a regional this year. University of Indonesia had also sent two other teams (Vidina and Algorythmists) to Kuala Lumpur site this year.

Honestly, we expected to become a world finalist this year :D. We had participated in nearly all college national programming contests before, and got pretty nice results. Each of us also practiced regularly in online judges, me especially in TopCoder (SRMs). So, we hoped that we got some luck and succeeded this year.


We were assigned a new coach, Denny. He participated in an ICPC regional in around 2000’s. My teammates were also the same as the previous year, i.e., Alham Fikri Aji and Berty Tobing.

The teams were selected by choosing the top 3 teams from my university in Indonesia National Contest. Then, our team was selected to participate in Manila, while the two other teams were selected to compete in Kuala Lumpur.

I told Ilham Kurnia, my programming contest trainer, that we were going to take the Manila regional. He immediately warned me that from his previous experience in competing in Manila twice, this site was always badly organized. The problem statements were ambiguous, the clarification was not so helpful, etc. So, he advised us to anticipate for every bad things that might happen during the contest. [Read more…]


Wanna Play My Diglett Hunter Game?

This is my third semester in Faculty of Computer Science, University of Indonesia. We got an interesting assignment from Web Design and Programming class: to create a “catching mouse” game. The game must be created as a plain HTML file with Javascript and must make use of browser cookies. The deadline was about two weeks.

So, here is my submission: Diglett Hunter. It has poor design; but well, at least the game works. You can choose on of the three themes for the interface. When you make a new high score, your score will be recorded (in browser cookies, not in server :D).

Here is a quick explanation on several parts of the game. Note that this explanation is not exhaustive. It is assumed that you know the basics of HTML DOM and Javascript.

Generating Board

The board consists of 5 x 5 unit squares, generated by the following JS code. This is actually a <table> that consists of 5 <tr>s, each consisting of 5 <td>s.

function genBoard()
    document.write('<table id="tableBoard">\n');
    for (var i = 0; i < 5; i++)
        for (var j = 0; j < 5; j++)
            document.write('<td id="tdCell' + i + j + ');">');
            document.write('<a href="#"><img id="imgCell' + i + j + '" src="mouse.png" onclick="hitCell(' + i + ', ' + j + ');"/></a>');

Each cell has onlick attribute that specifies what to do if the user clicks on that cell. Please consult to scripts.js for more reference 😀 [Read more…]