Thursday, August 12, 2010

The inclusive group of exclusivity

The last day in Australia started with me waking up way too early. I didn't realise we had a late start of 9AM, as opposed to the usual 0830. The exam was altered to be slightly shorter, 4 hours long, with only 3 questions.

The first one was tricky to implement, it took me roughly 3 submissions before realising that my maths was horribly broken (I cannot add numbers manually). This kind of error happened to me quite a few times this week, actually. Spending the remaining 3 hours on 2 questions, I think I arrived to some kind of a solution, but it ended up being more tricky that expected.

The free afternoon was uneventful, and doing the exam questions made it even more so. We had Emanuel kids come over, with Rafi being exceedingly loud.

Leaving for Canadia (haha Luke) tomorrow, going to sleep now.

So today was simply amazing. That is all.

The exam was shorter than normal, to accommodate people going home to get their bags. So instead of the usual 4 questions 5 hours, it was 3 questions 4 hours. I'm quite satisfied with my performance, hopefully this has been enough prep for the IOI.

The free afternoon was AMAZING, this cannot be stressed enough. I met up with some people I knew from hs1917 and we spent the afternoon/night having insane amounts of fun. Also I picked up my team mascot, aptly named Anarchy.


Dinner too was amazing, the other hs1917 kids came along, and it was fun and everything was just simply incredible.
Also the thai was a bit hot for me, but I'm disregarding that because of how amazingly awesomely optimal the rest of the day was.

Yours Sincerely,
Robert Newey.

Last day in Australia

So today was the last full day before we left for the IOI. After a refreshing night's sleep, and another early breakfast, I felt ready to tackle the problems that would be given to us in our trial exam. We had a bit of a difficulty to begin, as the room we originally had planned to sit it in was booked (this was a room that had the air conditioning "accidentally" set to 29 degrees, getting us used to Canadian temperatures), and so we quickly dashed to another lab.

The first problem I tackled was the full feedback one (you could check what you scored for it immediately), and I quickly observed the necessary solution. After a couple of 'huh?' moments after not getting 100%, followed by realising a crucial bug that was screwing it up, I finished it and looked at the next, a much harder one. This time, I was unable to think of the solution immediately, and so only partially solved it before the exam had ended.

Again, this was slightly depressing, but I drew confidence from the fact Evgeny and Kenneth scored close to what I did, indicating that it was very hard. We then went and had lunch, and this time I got some not particularly noteworthy fried rice. Then Evgeny, Kenneth and I headed back to the rooms, with them intending to stay there while I went home to back my bag fully.

The trip home was not particularly eventful, as I have done similar trips before, but killed 3 hours. After arriving back and quickly dumping my new bag, I turned around and was quite shocked to find the mirror of our room drawed on in whiteboard markers. Evgeny, when I showed him it, realised the possibility it presented for doing informatics and so we went into his room for a impromptu problem session.

The rest of the day consisted of dinner at a Thai place, which ended up with all of us getting curries and Kenneth getting a phobia of glasses being knocked over. After this, we went back to our rooms, leaving time for us to pack and go to bed early for the big day tomorrow.

Still alive

So this post is going to be the post that was meant to go up several hours ago when the Internet connection I'm working off was offline.

Finally managed to wake up at the planned time of 7:10 today. The hope is that I'd be able to wake myself up properly and get breakfast finished before at least one other person so I stop being the reason we go to the labs late. After having seen everyone else regularly buy the pancakes and appear to enjoy them, I tried the same. Unfortunately, I was wise enough to try and spend precisely $25, I ordered fried eggs too and couldn't finish it in a reasonable amount of time, holding back everyone and yet again being the reason we got to the labs late.

Yet another practice paper (the third, if my counting ability doesn't fail me). In my opinion, this exam was harder than yesterday's, not only because I didn't do terribly well, but also because trying to understand the solutions to two of the three harder problems takes a fair while longer than yesterday's exam. The full feedback problem was certainly more difficult than the usual full feedback problems that I've grown used to. Most of the time, the full feedback problem requires some reasonably trivial algorithm to be implemented, not needing too much thought to go into arriving at an algorithm that solves the task (since feedback is usually to assist competitors produce codes with less errors, rather than assist competitors in solving the task on an algorithmic level). Though in terms of the algorithm, today's full feedback task wasn't as too mentally taxing, it had quite a few gotchas that took a while to figure out. Given that the task is full feedback, one would know upon submission that they didn't submit a correct solution and take a while longer than usual to solve what should be an easy problem [taking away precious time to work on more difficult tasks]. That leads on to the other tasks, which had me quite entirely stumped for a long time. Jarrah mentioned how we were going to hate ourselves during the problem session, and for good reason too.

Having collectively discussed the solutions to the problems that had completely confused us only a few hours before, we quickly arrived at an incredibly simple solution to one of harder tasks. Not only was the solution ridiculously simple, but the line of logic that we had to follow was quite obvious once a small observation has been made. Then again, that ability to make the small observations is what differs the good informaticians from the extraordinary informaticians. The other two of the more difficult tasks required less epiphanies and more deep thought and number crunching. This is the kind of deep thought and number crunching that would have the entire team sitting at a table for extended periods of silent meditation that would be interrupted by a magnificent eruption of discussion, shortly followed by further silence. In the end, we came up with an algorithm for solving one of the two unsolved tasks (albeit deeply confusing and lacking an elegant proof) and a questionable solution to the last one (questionable in that it makes sense and should be algorithmically correct, but implementation-wise is a little half-baked).

After the extended problem session (which [since I haven't explained it anywhere else yet] is a session where we all sit down and discuss ideas and potential solutions to problems that were in the day's exam [or any exam for that matter]), we went down to the labs for a shortened lab session (which is where we implement/code the solutions that we discussed in the problem session), where I managed to code up the solution to the task that required an epiphany. I had a stab at the deeply confusing task, but didn't have enough time to finish ironing out the errors.

Butter chicken for dinner (and kebab for lunch). Good stuff with rice. Table conversation was good; we talked about topics such as the ISSC (International Schools' Software Competition), binary search, the expected number of rolls of a dice required to get a number that isn't 6, and whether or not it was possible to make a proper random number generator (i.e. one that has a perfectly equal chance of getting each of its possible values), given a random number generator that gives random numbers of a different range (so something like "given a perfectly random die, create a series of steps that utilises the die to generate a random number between 1 and 5 inclusive" [a la the previously mentioned topic). Truly riveting material.

After dinner, we went back into our rooms, with everyone going to sleep much earlier than usual. Since the Internet connection was offline during this time (which probably explains the early sleeping times), I didn't have a chance to write up this blog post at the time. Instead I thought it would be fun to implement that solution to the minesweeper problem that I so fondly proclaimed in my last post. By the time it was 1am, I had gotten so irritatingly close to a completed solution, but stopped when I realised I was keeping Evgeny awake with the light, loud typing and the TV that I had on for background entertainment so I put it off till a later time.

So as far as I can remember, that was all that happened yesterday. With regards to this particular post, I have a strong feeling that I was being heavily distracted earlier on in the post by a TV, so much of it may not make as much (or any) sense. I'd proofread it, but it probably makes a more interesting read for everyone if I don't.

Flying soon.

-ken

Too lazy to blog

I've been unable to blog for the past 2 days due to my extreme devotion to doing informatics (and scoring 10% or less and not knowing why). In the last 2 days, nothing extraordinary has happened. Here's a recount of the last 2 days.

August 10

Got up at 06:30, which is kind of early, even without considering the time I sleep. Re-filled my supply of Mothers (we have a fridge in the room :D), and spent about 5 minutes looking for my breakfast vouchers. My bag has too many compartments for it to be usable.

Yesterday night, we raided Coles and got about 1-1.5kg worth of bread, sweets and chocolate. The prices are much, much lower than in restaurants (obviously), with our last night's dinner buying roughly 70 Coles pineapples.

Breakfast: spot breakfast roll (too hot for my liking, the Tabasco sauce got squeezed into one third of the baguette while I was eating it), ricotta pancakes and a cappuccino with coke. With 30 minutes left until the exam, Kenneth is still waiting for his order.

Sat the exam. Everyone is sad. Bought food, forgot to ask for receipts to give to Bernard, who isn't happy about that. Problem session. The exam problems were fun once you know how to solve them. Highest score: 185/400.

Had dinner at the Italian pizza place with the funny waiter guy.

August 11

Another exam, this time with a slightly harder set of problems. In the problem sessions, we got told how easy some of them were.

Met Richard, who believed the Google hoax and went as far as considering negotiating with them to let me finish the HSC. Oops. Went to sleep early after scoring another 0 :D

The curious case of the falling cups

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