
Ryan Selected for Informatics Olympiad
Ryan Selected for Informatics Olympiad
June 25, 2018 at 2:15 PM
We are proud to hear that a second Saint Kentigern Senior College student has been selected to represent New Zealand at an International Oympiad!
Following on from Andrew Chen’s selection for the International Olympiad for Mathematics, Year 13 student, Ryan King has earned a place on the New Zealand team of four to attend the International Olympiad in Informatics (IOI) to be held in Tsukuba, Japan in September. This is one of the most prestigious computer science competitions in the world and the students who attend are some of the brightest young computer scientists from across the globe! This year’s IOI will have over 900 participants from 85 countries in attendance!
The selection process for the New Zealand team required students to firstly compete in the NZIC (NZ Informatics Competition) and/or NZPC (NZ Programming Contest) from which 30 students were invited to a training camp at the University of Canterbury, Christchurch in January. Ryan was selected for the camp, where the students were put through further rounds of competition as well as attending lectures on algorithms, data structures and other computer science concepts.
Following the camp, the top students were invited to compete in two Australian competitions: The AIIO (Australian Invitational Informatics Olympiad) and the FARIO (French-Australian Regional Informatics Olympiad), from which the New Zealand team was picked. In April, Ryan travelled with the team to Sydney for further training with the Australian Informatics team at their second training camp at Macquarie University.
Contestants aim to gain as many points as they can by solving a set of algorithmic/computer science problems by writing programs to solve them.
Ryan explained, ‘Basically each problem requires writing a computer program that when ‘fed input’ must produce the ‘right output.’ The judge will run this program with hidden test cases and the program must correctly pass each test case by producing the right output under the time and memory limit. There are subtasks for partial points. Essentially, the challenge comes when, with each increasingly difficult subtask, the bounds of the variables become larger or certain restrictions are lost. The amount of data increases, therefore, the algorithm that you come up with must be more efficient in respect to both time and memory complexity. You can't get away with writing an inefficient program for harder subtasks!
A simple example is a naive algorithm to sort 100 numbers may run under a time limit of 1 second but that same algorithm may take a lot longer to sort 1 billion numbers, hence it wouldn’t pass under the time and memory limits. You'd want to write an algorithm that doesn't take too much more time and memory as the amount of data increases.’
We are very proud of Ryan’s achievement and look forward to hearing more about his experience at the Olympiad on his return from Japan. Good luck, Ryan!
Ryan has given some examples of the challenges:
- If you had a knapsack with a weight limit and you had a bunch of treasures each with monetary and weight values, what combination of treasures will accumulate you the largest possible monetary values while sticking under the weight limit of the knapsack?
- Given a forest of weighted trees (with vertices and edges (graph theory)) connect them together to create one singular tree, such that the longest path between any two pair of vertices of this new tree is minimised. A tree is a type of graph where the number of edges is equal to the number of vertices minus 1 and there is only one unique path between any two pair of vertices. The online judge will give your program the information about the trees and must output the longest path between any two pair of vertices of this newly constructed tree assuming you constructed it optimally.
Given a cake with dimensions and designated cut locations, you have to cut the cake in such a way that you not only meet the required amount of pieces but that the largest piece's size is minimised. The online judge will give the program information about the dimensions of the cake and where to cut and must output the smallest possible largest piece you can cut given you meet the required amount of pieces.