Wow, I can't even begin to describe how fast this week has passed. I have the most peculiar feeling at the moment. It's not the feeling that leads one to say "it remember it as though it happened yesterday", because that kind of recollection is reserved for the previous 5 minutes at any given present point in time. It sure has been a fun training week, but in a way I guess the excitement has only started, since we're going to by flying off tomorrow morning (or rather, in a little under 11 hours) which will be my first trip to anywhere near America. [random sidenote: we just finished watching one of those aircraft disaster shows, which doesn't really help]. Today was a nice final day to have in Sydney for the next week or so.
Today's plan to wake up at 7:10 went off without any problems, but getting out of bed before 7:15 ended up with me getting out of bed at 7:40 and rushing down to breakfast at around 7:45. I got down to see Bernard and Evgeny eating breakfast with Luke and Robert nowhere to be seen. Apparently they had already eaten and left, and then it turned out that Bernard and Evgeny were just screwing with me. Somewhat relieved, I aimed a little higher and ordered the "Big Brekkie" that I had ordered on the first day [which had originally caused me to take a path down to the CSE labs that was at least 4 times longer than it had to be], hoping that I would finally stop forcing everyone to wait for me while I shoved food down my throat. In the end, I had to go back up to my netbook in anticipation of today's free afternoon (during which I wrote my previous post) and ended up holding everyone up again. During breakfast, we gave our orders for tomorrow's breakfast [which has to be early since we need to be packed and gone by around 7:30]. It turns out that we needed to be awake at around 6:30 to eat breakfast and check out in time. This is going to hurt.
A slightly different practice exam today. Instead of the normal 4 problems in 5 hours, we had 3 problems in 4. This time the full feedback task was a little harder to solve algorithmically than yesterday's, but during our conversation at last night's dinner we had talked a fair bit about how binary search based algorithms work and how we can get caught out when utilising a binary search. On some level, it probably helped since binary search ended up coming across my mind earlier on [which was helpful because the solution involves binary search]. After a couple errors got ironed out, I managed to submit for the full feedback task and get 100% for it. Of the remaining two problems, I got a sudden strong wiff with one particular one (which I'll refer to as task 2), though I saw a solution to the other (task 3) that would score a definite 50%. After a good two and a half hours or so of thinking, I felt as though I might as well shoot for incomplete solutions that would score well. This being said, I felt as though I had a solution to task 2 that would score 100%, except for a small algorithmic requirement for which I could find no answer. Since I thought I would be able to code up the 30% solution to task 2 much faster, hopefully leaving plenty of time for task 3 (which I would need since the implementation for the 50% solution was quite bug-prone). After making a small observation, I was able to optimise my original 30% solution somewhat, though I had no idea how many more points I would gain from the optimisation. When I finished implementing the optimised 30% solution, I tested it a fair bit before making a submission to the contest site.
Since task 2 wasn't a full feedback task, my score remained an unknown variable (especially since I could have had a few bugs), but in an attempt to better simulate the IOI environment, submissions for all tasks can be made to the training site (though only at a fixed rate and at most 5 times per task) to find out what our final score would be if we submitted the solutions as they were (although task 3 on the training site had a slight different scoring system to the one which would our final score from the exam). Upon submission, I found that my optimisation had improved my 30% solution to a 55% solution. After yet another small observation which allowed my solution to take greater advantage of the first optimisation, I was able to get that 55% to a 60%.
This left me with 20 minutes to code up and submit for task 3, which went somewhat against the original plan of giving myself the most amount of time possible for coding up the 50% solution. Despite my maddest coding attempts, I never submitted for task 3 (hence scoring 0 for it). Ultimately, I scored a 160 out of a possible 300, which isn't nearly as good as it could have been (since I spent so much time trying to come up with a better solution to task 2 and 3, rather than coding up the solutions that I had seen originally). Either way I managed to not fail, which was is a fair achievement.
Lunchtime. I got a chicken kebab at the same place as yesterday. Sitting around the table that we managed to catch, we gradually moved towards a pseudo problem session. Since a free afternoon was scheduled for right after the exam, the problem session was somewhat rushed as people had plans. Apparently, the solution that I had to task 2 could have been modified in a particular way to remove the algorithmic issues that I had, thus allowing it to score 100% which I found most frustrating since it was a modification that should have been more apparent given the nature of the task. We didn't look too deeply into task 3 as everyone needed to be somewhere.
This free afternoon was largely dedicated to allowing people to go home to pack their bags for the flight tomorrow. Since I had already had everything for Canada packed and ready to go from the start of the training week, I just stayed in my room, as did Evgeny since he was planning to get his bags later in the evening. During this time I took advantage of the availability of a working Internet connection to write up the post for the night before. That being said, I'm currently writing up this blog post while the connection has died again, which means I'll have to upload it later on tomorrow (or after the flight).
Dinner at a Thai place. Green curry chicken (which I find nothing less than absolutely awesome). While waiting for our dishes to arrive a full cup of water was knocked over, spilling water all over the table and (due to the slight lean of the table) on to my chair. After this happened I immediately moved out of the way, but underestimating the liquid nature of water, I remained seated. Seconds later, I realised the water was pooling to the part of the chair which I was sitting on. A couple minutes later, another cup of water was knocked over, spilling more water towards where I was sitting. Just another couple minutes later another cup fell, but this one was an empty cup. I still jumped. About 10 minutes later, yet another full cup fell. By this time, I was so jumpy that I would be staring at the cups whenever there was nothing else important to focus on.
Cups of water are dangerous.
-ken