Now, having achieved this, I think of the December camp, the one where I began this journey and where I learned so much. Now, having reached this pinnacle, I look back and think of all the things I've learnt. The truth is, I believe I might not learn so much from December camp again but every year, I'm going to be there because every year, there is going to be someone new. Someone to bring something new to the group and every year, there's going to be a new group of people with their own quirks and references and personalities and stories. I want to be a part of that.
Sunday, 31 July 2011
End of Awesomeness
Now, having achieved this, I think of the December camp, the one where I began this journey and where I learned so much. Now, having reached this pinnacle, I look back and think of all the things I've learnt. The truth is, I believe I might not learn so much from December camp again but every year, I'm going to be there because every year, there is going to be someone new. Someone to bring something new to the group and every year, there's going to be a new group of people with their own quirks and references and personalities and stories. I want to be a part of that.
Wednesday, 27 July 2011
Ohh... sparkly...
Yeah, I failed pretty hard on the first day. The three problems were known shorthand as Rice, Race and Garden (although for maximum confusion, it would have been way better to call Garden, Rose (Disclaimer: I didn't come up with that)).
The easiest one was Rice which I should have scored 100 on but only scored 68 on. I saw the easy 68 solution and thought, "Okay, I've gotten 68, that's pretty good... and the 100 solution is going to be really hard right? Because all IOI problems are really hard right?" So, yeah... 30 points lost there.
Garden was a graph problem which I may or may not have gotten the solution for. I spent 2 hours making observations about state explosion and cycles. Then I coded up half of it and started doubting myself because I really wasn't actually sure about the solution I'd thought up. So basically I wasted half an hour coding half of a possible solution. Then I decided to code the partial mark solution which was 49 points... but it didn't work! 49 points lost there.
The last one, Race was another graph problem involving a tree and finding the smallest number of edges summing to a certain distance. After the competition I heard Jarrah and Evgeny talking about the solution and realised it was similar to something I'd thought of in the competition. The thing was, I hadn't been thinking clearly at the time (because I was really annoyed at Garden) and hadn't given it much thought. In the end, I only coded the 9 point solution. Not that much of a loss since I doubt I could've gotten the solution anyway but some of the others got 21 points so... 12 points "lost" there I guess.
So, basically I failed the first day, missing out on what could have been another 90 points. I missed out on more points than I gained! So by the end of that I was feeling pretty... bad.
Luckily, I totally pwned on the second day.
The three problems were Parrots, Elephants and Crocodile.
Parrots was a task somewhat similar to a compression or encryption problem in that you had some data, had to "encrypt" it, and "decrypt" it. The thing is, the encrypted data, (a series of integers) could be sent to the decryptor in any order. I managed to get 81 points, Evgeny got the same and Eliot got 95.
Crocodile was another graph problem which required a few observations to reduce it to a kind of "reverse dijkstra". I got 100 along with Evgeny and Robert but (from what I heard) Eliot didn't realise he needed a priority queue so he only got the 46 partial marks.
We still can't figure out the solution to Elephants which we assume is a crazy data structure problem. This was an amusing problem in a few ways. Firstly, the problem had 5 subtasks but on the problem statement they were labelled, 1, 2, 2, 3, 3. Yay, duplicate subtasks. Also, the last two subtasks were worth, respectively, 47 points and 3 points. There was also a note in the problem statement saying something along the lines of "The c++ STL may be too slow to solve subtask 5". As Chris said, subtask 5 is there to separate Gennady and the Russians :). The other three got the 26 point subtask. Eliot told me he used the set solution which did a whole bunch of binary searches to "skip" stuff and make it faster. That was the theory anyway. It turned out to make the algorithm O(N^2 lg N) instead of the simple brute force which was O(N^2). I submitted the bruteforce expecting just 26 points but instead, I got 50!
The second day went much better than the first allowing me to scrape enough points for a medal. Well, I'm not sure if they've finalised the medal cutoffs yet but I certainly hope so.
Post-competition. Success?
Alright, so
I haven't had any time to post anything in a while due to a few things:
1. Dodgy internet.
2. The competition.
3. Dodgy internet.
Fortunately, it seems to be working now. Anyway, the competition itself:
Day 1.
One free mark/easy question: Ricehub -- A sliding window while keeping track of the median sort of thing. Tony Sun forgot the input was already sorted for you, so he implemented what he calls a "sliding heap" ಠ_ಠ.
Race: (for me) an ostensibly easy problem. Yeah. No. :\
And finally, Garden: Looked kind of complicated. Unfortunately I spent most of my time on Race instead of it.
I scored 158 on day 1, Evgeny scored 170, and Michael scored sub-100 (but he owned the second day really hard).
Day 2:
First the easy question (for me): Parrots. You have to encode a message such that you can decode it no matter the order of which your encoded message is delivered.
More importantly, question 1: Crocodile. This one was rather annoying for me. I coded up some random DP which got "fatal signal 11" on all subtasks. So I put my hand up and ask "wtf is fatal signal 11?" 10 minutes later: "Lol no we aren't going to tell you. Trololol." Feh.
And question 2: Elephants. I made a silly mistake which cost me about 20 marks. Sadface.
Notably, Michael Chen scored ~230 on this day (out of 300), while I scored 168, Evgeny scored 207 and Robert scored 178. Leaving us all with bronze medals, excepting Evgeny, who should get a silver.
The final scores were: Evgeny: 377, Robert: 316, Michael: 308, and me: 326.
After the competition we went to Pattaya city, where, (and this is the most important part) I bought a fan (not steven) (I actually have 4 now)! Incidentally there were also a couple of strip clubs. That is all.
Overdue post by the honorary IOI fanboy
"While you didn't have enough, keep substituting ceilings for floors until satisfied"
- The nonogram puzzle on the IOI newsletter was invalid - we did it twice, getting the same result, and then Bernard told us that it is horribly broken. Oh well.
- Thai KFC charge extra for "no ice" in your drink. Want to know why? Click here.
Monday, 25 July 2011
Wake up!
Getting up today wasn’t all that easy, and the wake up call 10 minutes before the bus was leaving for the Nong Nooch gardens was quite a shock to the system. Fortunately Evgeny and I still had time to grab some bread for breakfast, so that was a triumph of perfect timing for sleeping in.
The Nong Nooch gardens were alright, the highlight was the elephant show where there were elephants trained to play soccer, basketball, paint, dance, and ride a tricycle.
I know jumping photos are kind of clichéd, but they’re still cool! This is our guide for the week, Wan. She’s the one responsible for all our 6:30am wakeup calls, and as bad as that sounds, they’re really appreciated and stop us sleeping in, so please keep them up!
Syndicated on my blog
Sunday, 24 July 2011
Something approximating fun
Today was the first exam, and I’m reasonably happy with how I went. 138 out of a possible 300, which puts me a solid 18 points above the bronze medal cut off as it stands. So hopefully I can keep my ranking up and come away with a bronze medal on Tuesday.
I got off to a really slow start, 0 points after 2 and a quarter hours was rather disconcerting. After that I started scoring some points, which let me calm down a little.
Anyway I’m off, this laptop is annoying me and is liable to shut down randomly.
Syndicated on my blog
Saturday, 23 July 2011
A singular confusing event
I go into quarantine rather soon and haven’t had much time to write this sorry. Quarantine is rather strict this year, we’re all confined to our rooms nd have our phones confiscated.
Also, I have no idea how this piece of paper came into my possession, I was just minding my own business in the practice competion and someone brought it to me. It’s a hard life.
Syndicated on my blog
Friday, 22 July 2011
A night on the town
To continue where I left off from yesterday, we all spent the rest of the trip doing our little things, I watched the Lincoln Lawyer, another movie that wasn’t bad, just not remarkable.
The walk to immigration was happily punctuated by an officer of some description with a smiley badge embroidered on his uniform. I’d like to think he was the fun police, but it occured to us later that Thailand is the land of smiles, and they may be trying to push that image.
Next stop on our adventure was the Novotel Suvarnabhumi Airport Hotel, which we are fortunate enough to be staying at. Possibly one of the most striking features of it was the sheer size of the lobby. It’s 5 stories high, has rooms looking into it, several fountains, large trees, various cafe places, and it doesn’t feel cluttered.
The rooms are also quite a sight. In my case, Evgeny and I are sharing and have a king single each, and all the lights can be controlled from a console beside the beds (which I found after searching around the room for where to turn the lights off). The fact that we’re overlooking the airport is actually quite nice, for instance, it’s 11:40 right now and the entire thing is still bustling and alive, which isn’t conducive to sleep, but it’s pretty.
Now dinner was okay, it was half KFC, half Japanese restaurant, and a young coconut for me, though the story of how that came to pass is much more interesting than what I actually had for dinner. It all started with a train trip to a part of town which was supposed to have a lot of food places, and it may well have had restaurants, but for the life of me I couldn’t tell because of all the street vendors toting bootleg dvd’s, cheap jewellery and high fashion knock-offs. Though there were occasional bursts of seemingly ad-hoc food courts in the street where the food street vendors would congregate. After we spent a while wandering, we ambled accross an “international food court”, though in Thailand that would seem to mean they had both Thai food and KFC. Unfortunately for us we got there very near closing time, so nearly all of the local cuisine was gone and us heathens had to get KFC and a young coconut from somewhere that was still open. Though we got there so late that even after we bought most of KFC’s remaining stock, everyone still only averaged to half a meal. That’s when we started walking back to the train station hoping we’d come accross somewhere decent that was still open, and we were in luck! A Japanese restaurant at the top of a department store was still open, it’s a far cry from the food vendors on the street, but before the competition I’m not game enough to trust any of their food.
On a more visual note, I’m quite happy with how this image captured the dirty, grimey, smokey aesthetic of a Bangkok street market at night.
Back in the hotel now, and there is no internet provided… Not happy Novotel.
Syndicated on my blogAt the IOI
Thursday, 21 July 2011
A bit late
For the lulz I’m writing this post in edit on the plane, with the trackpad turned off. For those people who aren’t aware of obscure remnants of DOS in windows, edit is a stripped down version of notepad that runs in a command line, and doesn’t wrap the text so the lines go over the edge and you have to scroll to see them.
This morning saw our departure from Sydney, though this was not without its hitches. The cafe attached to Perouse Lodge which was supposed to open at 6:30am, but they opened around 7:05am, 10 minutes prior to our departure for the airport. It turned out okay though, we could still order from the items on the menu that were quicker to prepare. I got their baked beans – which were very nice, though if I could make my choice again, I would get them with bacon.
As an aside, _everything_ is nicer with bacon. Though my philosophy hasn’t caught on yet, which is why I have difficulty ordering bacon sundaes at McDonalds…
At this very second I’m 11.5Km above Indonesia, and will land in Bangkok in another 4 hours. It’s a strange thought that it’s a 9 hour flight to Thailand from Sydney, but a 10 hour drive from Cobar to Sydney. So far on the plane I have watched ‘Sucker Punch’ and ‘Unknown’, the former is actually the second saddest movie I have ever watched, it was just so awfully sad, though cinematically it was absolutely brilliant which redeemed it in spectacular fashion. The latter isn’t particularly note worthy, not bad, just nothing stuck out as good.
One of the really cool things about this plane is that there is a camera in the nose which is broadcast live to a particular channel on the entertainment system. However the entertainment system is prone to crashing and informing the user that a segfault occurred. Which is basically meaningless to someone who doesn’t program, but we found it absolutely hilarious.
Other than those things, not a whole lot is happening, we’re all on the plane doing our own little activities to stave off boredom, I’m blogging, Evgeny and Chris are watching movies, Eliot is playing games, and Jarrah is reading. Exciting stuff.
Syndicated on My blog
Wednesday, 20 July 2011
How your computer actually runs
There is actually a Russian inside every computer flipping bits to make everything happen, and since this computer had been used so much the coating was wearing thin so you can see the Russian phantom inside the machine.
In other news, an informatics camp is probably one of the few places I could be away from home and still have enough stuff around me to fix a dead laptop.
Also, I would like to draw your attention to line 8 of the code in the above image.
In other news, we fly out to Thailand in another 11 hours. It’s really quite exciting, it just about makes the prospect of getting up at 6am worthwhile!
A Sydney Morning Herald photographer got a few shots of me for an article by Kim Arlington that should be out in a few days. So keep an eye out for that.
Syndicated on my blog.
Tuesday, 19 July 2011
A series of unfortunate events
The past three days have seen a steady descent from my laptop working, to it being a very attractive paper weight.
Sunday night immediately after blogging, it crashed, and rebooted with the desktop background corrupted, meaning that the hard drive was failing. After that there was an ill-fated (involving a ruler and a pair of scissors) attempt to get the back cover off to remove the hard drive. However this really only left me with a scratch on the underside.Yesterday I turned up to the apple store on campus and asked to borrow some screw drivers to take the hard drive out. Much to my surprise, they obliged! With that the corrupted hard drive was removed from the laptop. However, they didn't have a spare anti-static bag, so I carried the hard drive from the quad, to K17, and all the way back up to Perouse Lodge. That night I came up with an elaborate scheme to fix my laptop, and the rest of the data off my hard drive. All I had to do was back up the data on my external hard drive, take the hard drive out of that, put that in my laptop, and put the laptop hard drive in the external case. Simple right? Trouble was that external hard drive case didn't have screws... I got the hard drive out of it though, but let's just say that it has more of an open air design now.
Today during our free afternoon I returned to the apple store, both hard drives in hand. Asked nicely and was allowed to borrow screw drivers again (They're very nice people there). So now with hard drives exchanged, I was told that it would be another day before they would get OS X install disks in. Next stop on my adventure was K17 (The computer science building) where they happened to have install disks for Ubuntu 9.10! The big problem I had then was I tried installing that operating system on battery power, since I left the charger up in Perouse Lodge. The install finished before running out of power, the only thing was it refused to boot from the hard drive... and now the ubuntu cd is corrupted...
I promise I program better than I break stuff.
Syndicated on my blog.
Herp Derp, Trololol and Other Things
After that, it started to pick up -- instead of the normal 5 hour exam, we did the B-session. A problem almost purely of implementation. It turned out that I managed to code the solution correctly, and thus I was happy(er).
The B-session problem was about determining if a connected graph was the union of a tree and its "reflection." Lots of ways it could go wrong, quite annoying to implement. Even after >2 hours with someone who knew the solution we still overlooked at least 2 things which we had to work out in the exam. Still, it was fun.
And now, during the free afternoon, I am writing this blog post after having lunch at some random food place and going to Coles with Michael Chen and Evgeny Martynov. Where 2 litres of ice cream and 5 packets of lollies were bought. Disregard sleep, acquire diabetes.
Alright, time to see if I will be able to play Go on KGS with this hotel internets. Btw I don't have spellcheck.
Sunday, 17 July 2011
39) Day two, or one depending on your computer science bent
Today I had ice cream for breakfast. Ice cream, pancakes and maple syrup. The potential to have this breakfast should be your number one reason for joining the informatics team.
In other, more informatics related news, today was our second exam, and true to form this exam was much harder than the first exam. No one solved any of the questions. The first question was something which at first glanced seemed like a sweep line, at second glance seemed like a triangulation, and at third glance I wasn't sure anymore. Turns out that it's a simple formula.
We spent the rest of the day working on the exam and various other vexing problems, and we even got some of them out! Maybe we're a little talented like that, however, being a little more talented couldn't hurt.
It's Sunday, Sunday, gotta blogpost on Sunday.
Yesterday was the first day of the training camp, and we started out with a pretty awesome breakfast followed by a less awesome exam. Finding the cafe place closed didn't dampen our spirits, as we voted on eating Michael for breakfast instead - democracy wins again. Luckily for him, the cafe opened just in time to save Michael's life.
The exam was a pretty interesting combination of problems, somewhat easier than what I expected. I managed to complete the exam in 4 hours (after chasing down a single mistake in my code for a good hour or so) with a perfect score. If only I could do that in the IOI...
After that, we went for a lunch and went through the exam problems. Nothing exciting, really. Seeing all the different approaches to the problems that the others had was quite an interesting experience, and it's what makes informatics pretty much unique in comparison with other Olympiad fields.
Today, we followed the same schedule as before, minus the breakfast incident. The exam looked heaps harder, too. I completely misjudged 2 of the easier problems as being too hard, and in fact one of them had a very elegant solution that no one managed to see. I decided to spend lots and lots of time on a harder problem, and ended up getting 80% for it. Not too bad, but not the best exam practice: could have scored 100+50+33 instead of 33+80.
After the problm session, we returned to the Lodge to play a Zendo, a pattern-finding game. Someone makes up a rule about what constitutes a valid arrangement of playing pieces, and the others try to work it out by making their own designs and asking the "game master" whether it is valid. Even though it sounds simple, we spent a good hour or 2 trying to guess Chris's rule.
We also got a problem to think about, we have a day and a bit to solve it, and then we will have an exam where we have to code up if solutions and ideally score 100. But it's late now, so... should sleep before the exam.
Typing on a phone isn't that bad after all, just slow.
So apparently we have an exam every morning... -_-. Anyway, today's exam started with me and Evgeny submitting something early on and the evaluator failing. From there it didn't get much better. No one submitted anything for the first question and no one completely solved any of the problems. The first question appeared to require polygon triangulation and maths formulae when it turned out to be a simple calculation. The second question was a graph problem with a twist which none of us thought about. The third question was a... well, Jarrah and Chris haven't told us the solution yet (that's how we got the q1 and q2 solutions), but most of us submitted slightly different and "optimised" greedies which scored between 20% and 80%.
For lunch we ate food.
Then we had the problem session (where we found out the q1/q2 solutions) and now we're having a problem session and planning on ordering pizza so we can stay at UNSW until 9:00.
Hopefully I can stay awake for tomorrow's exam.
Saturday, 16 July 2011
Mind bending scenario
We had our first practice exam today, and on the whole it was quite an enjoyable experience. However, getting up at 7am wasn't. Since everyone was still dreary from getting up it was a bit of a happy accident that the café wasn't open for breakfast on time, giving us an extra half hour to wake up.
The exam itself was really quite pleasant, the solution to question one was quite straightforward (I promise) and everyone got it out. Question two wasn't as nice though, but with a bit of maths and STL magic I got it out. Unfortunately the third and final question was quite painful, and even though I had the solution in my head it was quite ugly and I may not have been able to code it in time, so I coded up a correct but slow solution for partial marks then spent the remainder of the exam thinking about a nice way to code up the solution but didn't get anywhere.
This picture is from the problem session that ensued after lunch. We went through the exam problems and then got onto a problem that we were given in the lead up to camp. This problem is an exercise in "case bashing", which is where you come up with different input data for the problem and find patterns in it which leads you to a solution. Coding it was also an exercise in case bashing (and orac debugging, which is where you fix a bug and resubmit to the training site hoping and praying that you get 100 this time), and as of now no one has scored 100% on it. I'm on 95% though and will hopefully get the last few marks before the end of camp.
This post is syndicated on the official Robert Newey photoblog! (and will be posted at 00:01 July 17th)
Off to sleep now (or code, whatever takes my fancy). Until tomorrow!
First day of training
Yesterday evening we ate a delicious Japanese dinner and were joined by 2010 IOI team members Kenneth Wong and Luke Harrison, as well as informatics student Daniel Goldbach (who featured in this ABC news story about the April team selection camp). Luke, Kenneth, Chris and I were furiously solving problems to put in today's exam while the team appeared to be contentedly enjoying their teriyaki chicken and salmon sushi.
The sound of keyboard-tapping is now emerging out of the silence... perhaps some have moved from the problem-solving stage to the coding stage!