Introduction: Computers they say, are a class of mindless minotaurs - ones that need their instructions as much as we do their raw power. We form a symbiosis, one that has evolved into the Open Source Era today, and all the free APIs that let applications interact among themselves. The programmers are our interpreters in this transaction - they are the ones who are the ringmasters to these modern beasts. It is a skill that involves training your mind to think algorithmically, and translate real world tasks, simple or complex, to the languages that machines understand.
Format of the Competition: There will be 3 preliminary rounds spread over two days. The Prelims are the shortlisting process whereby one is supposed to solve a given problem within a given time. The first problem we faced was that one would expect that such a venture would be stifled to its very spirit if we restricted this to some programming languages only. One of the ways out was that we create a programming language of our own, one that provided certain functions only and one had to solve the problem at hand using them. Or we could pose the problem as a mathematical dataset; that was to be parsed by the program and then a output had to be generated such that it is free of the language as well. We chose the latter.
For example, the following question might be asked:
"Geologists sometimes divide an area of land into different regions based on where rainfall flows down to. These regions are called drainage basins.
Given an elevation map (a 2-dimensional array of altitudes), output the coordinates (row and column numbers respectively, in that order), subject to the following rules.
* From each cell, water flows down to at most one of its 4 neighboring cells.
* For each cell, if none of its 4 neighboring cells has a lower altitude than the current cell’s, then the water does not flow, and the current cell is called a sink.
* Otherwise, water flows from the current cell to the neighbor with the lowest altitude.
* In case of a tie, water will choose the first direction with the lowest altitude from this list: North, West, East, South."
-- reference Google Code Jam 2009 Qualification Round (slightly modified).
so given the following input
3,3
12,23,56
65,43,67
23,56,76
the answer is [1,1], [3,1], sinc these are the points where there exists a local minimum of the kind described above.
Rules: 1. Each team may have 3 members or less.
2. Any programming language may be used as long as it can read and output text formats of the kind mentioned above.
3. Teams may choose between two sets of input datasets- small or large. If they write the program correctly within the stipulated time period and choose to operate on the 'small' dataset and do so correctly, they get 10 points. On succesfully operating on the large dataset they would, however, receive 20 points. Failure to execute 'small' and 'large' datasets correctly would however cost the team zero and 20 points respectively. So choose wisely!
Tuesday, June 15, 2010
Subscribe to:
Post Comments (Atom)
No comments:
Post a Comment