Posts

10 Days in the IOI Training Camp (IOITC) At CMI, Chennai

10 Days in the IOI Training Camp What it is ...  The IOITC or the IOI Training Camp in India is the final level of selection for the Indian team of the IOI. Only the top 4 in the final rank list are selected. The difficulty level of the IOITC is considerably harder than INOI. Although most people presumably study more than the prescribed by the official webpage , but still... one can qualify in the national round with just basic knowledge of graph theory like BFS and DFS , a little DP and a spoonful of logic. However, in this blog, I will mostly relate my experience in this year's IOITC17. Here Goes ....  So this year I was selected for the IOITC. Being in class 9, I was the youngest this year. Even after giving INOI, I knew I would probably would... I had been able to solve both the problems, so it was not much of a surprise when the mail came with the official result. However, this year, a lot of class 10 students were allowed :  the cutoff for below ...

Preparing for IOI Training Camp

International Informatics Olympiad Training Camp Preparing for the IOI Training Camp was not any different for me as the usual practice. Though saying that would be a bit inadequate as I practiced very little competitive programming in the months from November to March, mainly due to school exams. Still, I would like to give a few pointers that might help. Firstly, try solving all the problems from the IARCS problem archive. Although this should be a pre-requisite for preparing for INOI, it is not necessary. However, solving all the problems of the problem archive should help you. For my own part, I rarely submitted actual solutions to get AC, mainly due to lack of time, (and a little bit of laziness :), ehh not really ) but I tried finding the solutions for all the problems in pen and paper. Next, the main thing to know is that solving problems o CF and Codechef won't help much in the Team Selection Test. They usually are trivial, or have very little in common with t...

Preparation for INMO

Indian National Mathematics Olympiad

Getting prepared for INOI

Indian National Informatics Olympiad Disclaimer : This post is mainly intended for an Indian audience.

Getting prepared for RMO

Regional Mathematics Olympiad The Regional Mathematics Olympiad (RMO) is the second stage in the selection for the selection of the Indian team to the IMO, the first being the pre-RMO. It is one of the tougher olympiads conducted across India, wherein only about 300 students are selected to sit for the Indian National Mathematics Olympiad(INMO). The main thing that makes RMO tough, at least for the common students, is twofolds -- firstly, the syllebus is quite a bit different than the normal class X or XI curriculum that is followed in schools, especially in areas like combinatorics and number theory, the latter being a topic that is scarcely touched upon. Secondly, in topics that are known to us, like geometry, the level of questions, even if they don't require advanced theorems and results, they need a level of creativity that cannot be mastered overnight. From hereon I will say what I did to clear it last year.. when I was studying in class IX. Firstly, I focused heavil...

Necromantion : A roguelike

Necromantion This is a roguelike game that I have been developing on and off for a year now, starting from March '16. It is a much larger project than those that I have written previously and I believe that it is moderately well written. Documentation is available on only a few classes, though. Over the next few blogs, I would be discussing some of the problems I faced and the solutions to them that I developed. Here is a link to the  code , but I would not give the images, as they are not mine.

Tetris part 2

The GameEngine Class So, this is mainly going to be about the GameEngine class. The main job of the GameEngine is to update and render the game environment. Now, at any moment , there is only one falling Group . So that is signified by currentGroup . Apart from that, the Block s that have already fallen, are just kept in a 2D array. For purposes of collision detection, this array has a padding. The padding is also required as we do not want a block to instantly appear .. We want to to appear slowly, that is first, the lowermost layer, then the middle and finally the upper layer. ( Group s have 3 rows each). The update function, at each call, moves the current Group  down, creates one if not present, and then checks whether any lines have formed. Since this is a small scale game, concurrency of threads has not been considered. When the player presses a key, the methods of the GameEngine  are called from the Event thread itself. The Player can rotate o...