Thursday, 4 October 2012

Late but not never

Well, late is better than never right?... <silence> well, let's get on with it then.

On day 1 we had (pebbling) odometer, (parachute) rings and (crayfish) scrivener.

Odometer was really weird. The most amazing thing is... Gennady didn't solve it!... that's right! Gennady didn't solve pebbling odometer!! Don't believe me? Well here's the IOI results. Still don't believe me? I don't believe it either. But on to the actual problem.

In odometer you were given a whole new programming language to control a robot in a grid. The grid consisted of a bunch of squares each with a number of pebbles in it. You had to do a number of tasks on the grid such as putting the robot in the middle square of two pebbles or putting the robot in the square with the minimum number of pebbles. The crazy thing is that since this is a whole knew programming language, you don't have memory! You don't have variables! All you know is where you are in your program. It's pretty crazy which is the only reason (I think) Gennady didn't solve it. Me, junkbot and goldy got the first two subtasks giving us 21 points while nic got subtasks 1 and 3 giving him 28 points.

The second problem was rings. You are given a bunch of rings which can be connected. We define a chain as one or more rings that forms a single non-cyclic path. We also define a critical ring to a be a ring which you can remove such that the remaining rings are chains, not necessarily all in one chain but a set of chains. You want to support two operations, connecting two rings and finding the number of critical rings. Basically, it was a whole bunch of icky and tripsy data structure foobar... that's all the detail I can go into in a blog. :/
Me and goldy got the first subtask giving us 20 while junkbot got 55.

The final problem was scrivener. You had to implement a machine which could type a character or undo the last x operations. The trick was that an undo counts as an operation in itself and undoing an undo would redo  all the undone operations... yeah, tricky. [SPOILER] After a few observations, you realised that you could turn the operations into a tree and use logarithmic parent lookup, similar to that in lowest common ancestor algorithms. [/SPOILER] Me, nic and junkbot got 100 on this and goldy got 60.

Tuesday, 2 October 2012

Home!

Sun 30 Sep - Mon 1 Oct
Following a rushed packing and breakfast, we jumped onto the bus at 0730 for a 2 hour ride to Malpensa Airport (Milan). Most people slept, others talked (I caught up on NCIS). We boarded our flight to Abu Dhabi. Upon arrival, we were told that our following flight was delayed by an hour. This was not a problem, however, as we had free WiFi. After another 14 hours, we were back home in Sydney and met with family.

It was a fun IOI. On the whole, it was a great experience. For Goldy, Nic and I, it feels as if we've been training for 3 years to get to this stage, so it is a happy/sad feeling of it all being over. We've made some great friends at the IOI some that we may keep for a very long time.

I'd like to thank everyone who has supported us (friends, family and tutors), especially Jarrah and Chris, our team leaders, for a sensational experience over the last 2 weeks, both training and competing. It certainly has taken up much of their time (and their sleep) and for this I am ever-grateful.

We now look forward to the year ahead. The AIO is over, and results are yet to be released (pinging bgbn). It will be a long and hard process once again, but for many of us in Australian Informatics programme, we will aspire to qualify to represent Australia at the next IOI in Brisbane.

If you are reading this blog, and have an interest in computing and/or want to get into informatics contact either Jarrah or Chris or our (unofficial) IRC channel (#aioc on irc.freenode.net) and we'll try and get you involved. It's a life changing experience and definitely worthwhile. I will never, ever, ever forget or regret doing informatics. And hopefully, you never will too.

The Close

Sat 28 Sep
Getting to sleep in to the relatively late time of 0730 was great. Following a luxuriously slow breakfast, we headed out in the rain to the buses towards Sirmione. Wondering around the town, we bought souvenirs, got more vouchers, more noms and more gelato. Despite the rain, the walk down to the beach made for some great photos.

Following lunch back at the village, we were told that due to the rain, they could not hold the closing ceremony outside in Sirmione (as originally planned) but instead we crammed into a small local hall. The band that played were amazing. After receiving medals, and the guides' spontaneous singing of the (Italian) national anthem we ran in the rain to queue up for more buses, eventually heading back to the village for the farewell dinner, followed by playing cards late into the night with the Brits and the Kiwis.

Venice: Spectacular Sights and Long Lines

Fri 28 Sep
Waking up before 0500 isn't usually pleasant. But it is if you're heading to Venice for the day! We boarded bus, train and boat before reaching St Mark's Basilica - the most famous sight in Venice. The architecture and ceiling paintings were amazing. We wondered around the town, managing to get food at a cafe and trying to sit down outside it. However, we were met with menus (the Coke was 9.80 euros) and angry waiters telling us we weren't allowed to sit there. After a wait, we were invited into another cathedral where we were given its history. After a (relatively) short walk, we were met with long, long lines to queue up for what we thought was lunch. However, it turned out that a bridge was broken, and we could not walk to our lunch venue (inside the Arsenale - a Navy yard) but instead had to queue up for a 3 minute boat ride.

Upon arrival, we were met with more walking and more queueing before being served lunch, to our relief. Following this, we heard more speeches, before heading back on the boats then the train then the bus back to the Village.

Contest Day2: Bitter and Sweet

Thu 27 Sep
The contest was very hard today. I was stuck on 0 for 2.5 hours, before giving in a deciding to code the partials. Immediately after the exam, I thought I'd done poorly, but rushing out to the TV screens (with the scrolling scoreboards), I was told by Jarrah that I'd actually done great (relatively) and that Australia had bagged a silver and 2 bronzes (with Goldy just over the bronze medal cutoff)! (sweet) We were all sad, however, that Nic narrowly missed a bronze but less than a measly 20 points (bitter). Heading back to the village I got in some exercise with Ping Pong and Tennis, before noms and sleeps. 

Contest Day1: Stress, Excitement, Fun!


Tue 25 Sep
This is the earliest I have woken myself up (0530). Ever. It is insanely dark outside. There are stars outside. We have to be up this early because the buses to Montichiari for the first contest day depart at 0700. Or so we thought. Following breakfast and boarding the buses, the tyres did not move until 0800, and, with a police escort, we arrived there by 0830. Entering the contest hall at 0915, we were told that the contest would only start at 0930, leaving us wondering for 15 minutes why we couldn't have got up later. At 0930, the contest started. Well, for most people. I was hit with a series of 500 Internal Server Error messages for 3 minutes, much to my frustration. Australia ended up doing great as a team, with everyone well above the medal cutoffs so far. We shall see how we go on Day2 (Thursday). Despite the technical difficulties, the contest was made awesome by the large bags of lunch delivered to our desks by the friendly guides, which was an unexpected pleasantry.

Having no appeals, we boarded the buses back to the village. While the rest of my team decided to swim in the lake, I preferred to stay on land and headed out with Jamie (the NZ deputy) to the soccer pitch where we met some other nations' teams. I learned that at the IOI, Eastern European countries only care about two things: Informatics and Football. Teaming up with the Danish team, we managed not to score a goal in all 4 matches that we played, but was still fun. We headed over to the tennis courts, and met up with a Malaysian representative, finding out that this is the first IOI that Malaysia has competed in. Upon arrival at the dining hall, I discovered my team were ever-curious about my whereabouts. They'd been playing bartog with team NZ, which we continued with Logan after dinner.

Meeting Montichiari


Mon 24 Sep
Woke up early this morning for the buses departing at 0730 for Montichiari (the site of the contest). After a reasonably long wait both at the buses, and at the venue, proceedings began at the Opening Ceremony. The opening bell was tolled and "the games" (that's what the guides are calling it) began (may the odds ever be in your favour). Following this, lunch was served in the foyer. The welcome video was played on the big screen no less than 50 times during that day and the next (so much that we memorised every word and the theme song which we have now deemed worse than Etihad's).

After lunch, we entered the contest hall for the first time for the practise contest. We tried to "break" the judging machine in every way (whilst still abiding by the rules) in order to prepare and accustom ourselves to the system (and its quirks) on which we will compete tomorrow. Heading back and eating dinner, we headed off straight to bed, sleeping no later than 2100 - the start of the quarantine (they took our phones).

This is it. We are at the IOI!

Sun 23 Sep
Waking up early, we headed downstairs for a scrumptious breakfast in the hotel, followed by a 1 hour problem session, where we went through problems from the ACM regional, and the Belarus selection exams. By midday, we were on a trail from Milano Centrale towards Venice, but disembarking at Desenzano; the station closest to Garda Village (our place of stay for the duration of the IOI). We met our (awesome) guide Jake who is a native English speaker but has lived in Italy for most of his life.

Upon arrival at the Village, We were met with a large line of flags and IOI banners, we received an IOI bag of freebies containing an IOI hat, IOI shirts and Norton 360 (-_-) (and lunch), before playing bartog with the UK team (who actually say "bullocks") before a large dinner. Jake took us for a boat along Lake Garda (which is spectacular at night) to the Sirmione castle. Given a 20 euro voucher for the whole team (including himself) Jarrah instructed us that it was "our duty to our country" to "knapsack optimally", each spending 4 euros to get no less than 3 flavours of gelato. We found it really cool that the organisers went around the area and got local restaurants to stick up "IOI 2012" stickers saying they accept our vouchers.

Heading back to our rooms, we soon discovered that we did not have WiFi reception in our room. As a result, Goldy wandered outside, only to return and sit down on what he thought was our front porch (where he caught reception) for no less than 30 mins before seeing a bunch of curious Armenians peeping out of their window realising that it was their front porch.

Ciao Italia!

Sat 22 Sep, 0630 [UTC+4]
We landed in Abu Dhabi. Marvelled at the interior design/contruction of Abu Dhabi International Airport. Ate McDonald's (whose menu is 90% chicken) where they gave Jarrah massive shopping bags to carry the food in. Goldy tried being rebel and ordered beef, and was made to wait a long time. We found free WiFi at the airport and all who had a laptop immediately put it to good use. Took off for Milan!

Sat 22 Sep, 1330 [UTC+2]
Landed in Milan (Malpensa International Airport). Waited a while for baggage to come out, during which Chris discussed unit conversion and how waiting for baggage costed real human lives. When baggage finally arrived, walked to arrivals hall and met Prof Peter Taylor. After laughing at the use of 'Binari 4' (which means track/platform 4), we boarded the train for Milano Centrale where we checked into our hotel. We hit the town on the metro railway and visited the Duomo Cathedral (whose architecture is spectacular) then returned to the local cafe for an early dinner. As soon as the anti-curfew (Jarrah didn't let us sleep until 2000 to adjust to the local time zone) was over, I was fast asleep before 2030.

Tuesday, 25 September 2012

IOI Day


[B G#b E F#7, repeat as necessary]
[Andante, autotuned]

Carpe diem! Waking up in the morning.
Take a deep breath of Lake Garda's air.
Gotta caffeinate, gotta get to breakfast
Eat in parallel, take our showers in serial
Everybody knows that today's a big day;
Gotta get down to the con-test
File onto the bus and
ride to the end

And we've crammed our algos
Read up on our big Os
But our practice time's up--
will our hard work take?

It's IOI day, IOI day,
gotta ace IOI day
Contest starts; we've gotta hold back
from the keyboard, keyboard
"Patience," we say,
"pulls us through IOI day!"
And we find something we can code up
that's our reward,
Function here, function there (yeah!)
Reams of code, everywhere (yeah!)
** One, ze-ro, one,
** that's IOI in binary

Friday, 21 September 2012

What This Feels Like

Today, like most days, we woke up between 7:30 and 8:00. Our exam started at 9:30 and finished at 14:30. We then had a quick lunch, then a problem session where we went through the exam. Now, Jarrah has told us to go to the labs and code some more problems for a few hours.

Jarrah compared us to marathon runners. He says, like marathon runners, we do lots and lots of training before the event, then we rest for a week. He says this is the intensive training period. I said that it felt like every day, we run a marathon. Then we painstakingly track our progress in the marathon and note every little detail of our run. Then we are made to run on a treadmill for another three hours.

So.. so.. tired...

Goodbye, ERHU, UNSW and Australia... Hello Italy! (via Dubai)

Express blog post: we're about to say goodbye to the ERHU lab. We've had a great time at UNSW training over the last week and within a few hours, will be on board a flight headed to Italy! Can't wait ^_^

Thursday, 20 September 2012

Curfew? What curfew?

So I now realise that our time at Perouse Lodge has slowly drawn to a close. It is a kinda sad and sorry sight to see only one breakfast voucher left on the table and to only have 10 minutes to write this blogpost. Jarrah's enforced a curfew (yes, you read it right a curfew <Ray>THE HORRORS</Ray>) because we have an exam tomorrow morning and will by flying out tomorrow night and he wants us to have every iota of sleep we possibly can before jumping on that plane.

Yesterday began with yet another exam, after which we successfully managed to prove an incorrect algorithm, or, a part of if it. Like seriously, who would think of such an atrocious thing as Computational Geometry (or Comp Geom, as it is affectionately called) which is purely maths on a computer (we're not kidding). Following a seemingly endless supply of family pizzas for dinner, we hit the sack for yet another day...

Today's exam was in some ways quite approachable and in many other ways the most difficult so far. For the first time, none of us managed to fully solve any of the three problems presented (my 95s were much to my chagrin) but were a little disappointed that we didn't see some observations that would have simplified the problem. Following a chocolate accumulating lab (1 chocolate for each problem solved ^_^) we headed down to dinner at the local Thai restaurant where we bumped into (ex-)HS1917 tutor Rupert.

It's time to get some sleep... hopefully I'll have net either at the airports in Sydney or Dubai or in Italy! The world awaits... the IOI is rapidly approaching... and we're all excited!

Wednesday, 19 September 2012

Pancakes and How to make your teammates squirm for 50 minutes...

Waking up late once again (I seem to see a little bit of a trend :S) we hurried down to breakfast to order the famed Perouse Lodge ricotta pancakes which "really get the heart beating (/palpitating/stopping)" topped with berry compote and ice cream. This is a time to remember all my friends who would be bustling to school while I indulge myself (moral of the story: do informatics; we have the best breakfasts!)...

The business part day started with a slightly easier trial exam than those previous, but still was not without its difficulties. This was followed by a free afternoon during which Goldy ran off to laser tag, and the rest of us were stuck in a computer lab for the better part of 5 hours. A suggestion of a 5-hour-long blogging marathon was (evidently) rejected due to the ever growing fear of RSI. Instead, we resorted to the (evidently anti-RSI) activity of TypeRacer for the majority of the time.

Following dinner and the return of Goldy, we settled down for the nightly session of Contact where it took Nic, Goldy and GP over 50 minutes to figure out 'precipitation', being repeatedly frustrated due to their belief that it clearly was not a word. Yet another exam follows tomorrow and it shall be tough... as nails. We must be tougher!

Cross Products and Even Crosser Informaticians

Today, the four students, as well as the two tutors, collectively proved a greedy algorithm for a computational geometry problem. We then individually wrote several hundred horrific lines of code to solve the problem, before realising our proof was wrong. It still scored 70% on orac though, so I think of this as being 70% completely and utterly correct. Proof by test data? Such is informatics.

Tuesday, 18 September 2012

We must really love informatics

It has been decreed by Jarrah that from now until dinner is our "free afternoon". We can do literally anything we want right now, we have no exams to sit or problem sessions to attend. What are we doing? We are sitting in a silent computer lab, practising informatics.

This is, of course, not what most people would think of as a "fun afternoon". We learnt a long time ago that we are not like most people (In a totally non-elitist way. We aren't better than most people. We are just weird). Most people would not order two massive glasses of orange juice to have with breakfast just so that the price would match exactly $20, most people would not stay up far later than they should this close to an IOI just so they could play another round of a word game and most people would not care about the outcome of a competition which took place years before they were born. Yet we do. We are strange. You probably knew that already.

It is the fourth day of the IOI training camp now. We've sat two practice IOI exams and the Japanese Olympiad in Informatics, each going for five hours. At this rate, we should be well and truly used to exams by the time we get to Italy.

Aside from the fifteen hours of exams, we have discovered that the AMT really wants their IOI team to eat well. We have been to very nice restaurants and eaten very nice food for every meal.

As far as I know, we're set to have another exam every day up until the IOI. We don't really mind this. Again, we are weird and we like exams. Exams exams exams.

Look at me, still talking when there's Informatics to do.

Smart IOI team is smart

So, me and nic haven't blogged much because we don't have laptops and we never have time after exams because we need to eat food to survive and stuff. Goldy and junkbot on the other hand, I have no idea about, especially considering the amount of documentation Goldy's been doing. (He's been taking pictures of almost every meal among other things.) But now we have a free afternoon so time for blogging marathon!

Anyway, this post is about how smart the IOI team is so without further ado, here's a bunch of quotes:

FURTHER ADO: Okay, it seems pretty junkbot heavy at first but no offense intended, it's just that me and junkbot are in the same room so therefore more quotes.

Junkbot brought a huge suitcase. When we first got to our room at perouse lodge he says: "Time to measure the radius of the door."

Goldy still hasn't shown up, despite the fact that he lives the closest out of all of us. While looking out the window, junkbot exclaims: "Oh hey, is that goldy?... oh wait, it's just a woman."

While examining the bedside lamp, junkbot says: "dude... look at how big this button is... ... dude..."

While searching for something good on tv we hear: "don't chop off your hand." This is why watching tv is a good thing. Because we learn things.

While playing plants vs. zombies: "Oh god... there's a plant getting through" ... yeah...

On our first night while discussing what dinner to get:
Jarrah: "Any preferences?"
Junkbot & nic: "Not Italian"
Me & goldy: "... wait... why?"
Everyone else: "... because we're going to Italy."

While examining code done by computer science students on the guest accounts we're using:
Goldy: "Aww... that's so cute."
When I ask to confirm what the distance formula is:
Goldy: "Aww... you year 9 kids... so cute."
When goldy finds out I don't have facebook:
Goldy: "Aww... aren't you above the age limit... aww, that's so cute."

So there. Undeniable proof of our intelligence. Since this is a free afternoon with not much else to do there'll probably be more blog coming up so watch out for that.

It is most definitely not possible to make an exam easier than this

"We have covered all this work all semester. It is only from the work we have done in tutes. It is easier than any of the labs we've done. It is most definitely not possible to make an exam easier than this. You have 40 and 10 minutes. That's 50 minutes. Five zero minutes. You can start now. Make sure you don't forget how easy this is. You should be able to know how to do this..."

The comforting sound of a highly over-enthusiastic computing tutor in an adjacent lab was more than sufficient to send the entire IOI team into (uncontrollable, for some) laughter. The (rather bleak) scenario we were faced with were 3 problems with not-so-good-actually-sort-of-half-decent-maybe-bad-ish-English from the Japanese Olympiad in Informatics (JOI) for five (point) zero hours.
Some hours earlier...

Waking up 30 mins late and only spending 85% of my breakfast voucher, we proceeded to the computer science building (known as K17) to discuss the terrors of the B-Session (pronounced ber-session or bee-session if you are feeling agricultural today). After wrestling with 300 lines of code for 3 hours in order to find the largest square for an Egyptian Pyramid Base (IOI 2008), finally scoring 100% was highly gratifying.

(Chris don't read this) After almost forgetting to collect a receipt from the Jewel of India, and dumping my bag in ERHU for the JOI, I did more than enough exercise for the week by disregarding the lift and acquiring running up and down 12 flights of stairs and across University Mall simply to fill up my water bottle.

* * *

After figuring out how to connect points on a plane to form a non-self-intersecting polygon (and not much else), the contest ended. The six of us headed down to Cafe Ciao for Italian (!) where I struggled to find an answer to "How do you order something that you can't pronounce?" Heading back to the Lodge, where we have been going for over 2 hours playing Contact (a word game) and blogging before realising it was already 2300 and we have an exam tomorrow. And with that, I'll wait for someone else to order and "Could I please have that too?".

Sunday, 16 September 2012

On informatics

If you haven't heard of informatics before, it can seem quite inscrutable. Ever since I sat my first competition in 2004, I've had to field questions from friends and family wondering just what informatics is anyway.

"Informatics? Like... information?" Kind of. But not like a trivia quiz, where you need to know specific information. We learn about how to manipulate information: how to take clues and combine them into the bigger picture.

"What's a programming contest got to do with maths?" More than you might think. Programming is telling a computer instructions; maths tells us how to ask the computer questions. It's the creative difference between calculating your taxes and evading them.

...though please don't quote me on that.

Konrad Marshall of The Age recently ran a story that neatly explains what it is IOI contestants do.
It's basically reasoning about reasoning. Instead of asking, "What is the answer to question X?" informatics goes one meta-level up, asking, "What is the general process for answering all questions such as X?"
It takes a special way of seeing the world to solve these problems. If I can sneak some time in edgewise in between training the team, I'll try to post a little more about the kind of skills it took for our team to get where they are.

Selecting an IOI team is never an easy task. This year, Jarrah, I, and the rest of the team selection committee sifted through the work of over a dozen very talented programmers before settling on the four who make up this year's team.

Believe me -- the kids we had to pass up on? They're no laughing matter either. Every one of the students we work with in our camps are brilliant: fast learners, abstract thinkers, highly creative and phenomenally adaptive.

So trust me when I say that, now that we've sifted the best from the best (the 24-carat from the 23-carat?), we have an incredibly kick-ass team on our hands, one that's going to do Australia proud when we head off to Italy in a week. I'm confident in these four.

Saturday, 15 September 2012

Are you going to live in Italy for 3 months?

Unable to find a suitcase that would permit me to lay by blazer flat, and packing two-thirds of the said luggage suboptimally, I was left to face the scrutiny of my teammates with regards to the "largest suitcase I have ever seen" which I struggled to wheel up the stairs of Perouse Lodge.

Following a problem session with Whiz Kid, Goldy and (Lol)Nic, the six of us (including Jarrah and Chris) trooped down to Zen, the local Japanese restaurant for dinner. Upon returning back to the Lodge , we marveled at the $120 worth of breakfast each of us had to spend over the next 6 mornings whilst using the mirror in our room as a whiteboard in an ad hoc problem session of the IOI practice problems. 

After collectively venting our chagrin at the idea of a "paperless contest", only 3 of us are left to mull over a historical artefact in the form of the IOI 1988 competition booklet. A 5 hour exam follows tomorrow morning at 0900, however, so perhaps I should get some sleep. Perhaps ... perhaps.