It’s been quite a while since the July Cook-Off 2013 got over. But it’s sweet memories are still fresh as dew with us. After a long gap (after 24 Cook-Offs), we saw the return of ACRush to the CodeChef Cook-Off. While his return spiced up our Cook-Offs, the regulars in raveman, al13n, and acmonster made sure that it’s not an all-ACRush show.
We saw great competition among the participants, while playing with the problem set of our wonderful problem setter Tuan Anh. The problem set were adeptly tested by Keshav Dhandhania, ensuring that the problem set has all the key ingredients to keep the contestants busy till the very last moment of the contest. And the changing names in rank table established it. Let’s have a look at the final rank table of the July Challenge-2013
The top-ten Global winners are:
The top 5 Indian winners are:
We hope you had enjoyed the July Cook-Off 2013 to the fullest. But, if you had tough times cracking the problem set, our young editorialist Utkarsh Lath has written elaborate editorials for all the problems of the contest. You can check them here. These editorials not only will help you understand the problems, but also will help you learn more about solving them.
That sums up the CodeChef July Cook-Off 2013, from our side. If you have some queries, suggestions, or feedback for us, feel free to write to us at “email@example.com”.
Till next time, it’s adios from CodeChef.
See you at the contests.
It took us some time to pen down the July Challenge 2013 blog, but somehow we did it. And, now that we’ve done it, let’s take you straight to contest.
The problems for July Challenge came from our adept problem setters, Roman Furko, Jay Pandya, Sergey Nagin, Vinayak Garg, Hiroto Sekido, Vitalij Kozhukhivskij, Vamsi Kavala, Ivan Zdomsky and Kaushik Iska; while the problem tester and editorialst was Shilp Gupta.
The contest saw serious competition among the participants. Emerging atop the global rank table was the mighty ACRush, while the Indian rank tables had djdolls enjoying the top rank. Who else featured on the rank tables, lets have a look.
Firstly, the global rank tables:
And now the Indian:
Now, a special mention to the users with highest scores for the challenge problem other than the winners.
The top three global scorers are”
And the top three Indian scorers are:
Here are the stats for the July Challenge 2013.
The detailed explication for each problem of July Challenge 2013 has been provided by our editorialist Shilp Gupta. Go savor them now, they will help you learn the best approach to solve them problems.
With that, we’d wrap up the tale of the July Challenge 2013.
We’ll see you again with a new contest and a new tale. But till then do keep sending us your feedback, suggestions, and queries that you might have at “firstname.lastname@example.org”.
Till next time it’s adios from everyone here at CodeChef.
See you at the contests.
There was a certain uncertainty in the air when we sat down for our first CodeChef LunchTime. It wasn’t the first contest that we were conducting, it wasn’t the first time we were witnessing programmers from across the globe go up against each other. We have been doing this for quite sometime now. But suddenly, after 4 years of hosting contests, it was as if we were new to everything. With butterflies in our stomach and a mild sense of diffidence at the back of our mind, it was one more Sunday for us, in office.
The problem set for the first LunchTime came from Vamsi Kavala and Roman Rubanenko, while Bruno Oliveira penned the editorials. The LunchTime contest was aimed at middle and high school students to persuade them develop interest towards competitive programming. And, to have Roman, who has been to International Olympiad of Informatics 2013 and Vamsi, who has been to ACM ICPC Asia regionals three time , we had the apt problem setting panel.
We were expecting an easy problem set for the schools kids to enjoy. However, the problem set that they crafted proved out to be a tough nut to crack. But, all the participants who participated went all out to solve the problems. The participation although was on the lower side, but we are expecting those figures to go up in the future.
Let’s have a look at all the figures for the contest, starting with the rank tables.
Heartiest congratulations to all the winners and to all the bright minds who participated in the contest.
Here are the overall final stats of the contest.
If you had tough times cracking the problems, you could check out the elaborate editorials for all the problems here. These editorials will help you understand the problem and it’s solution. They will also help you develop the correct approach towards solving such problems in near future, whenever you come across them. For anyone who’s new to programming, these editorials are great help.
It is just the first step towards our ultimate aim of establishing programming as a fundamental skill among the school students. But we are determined to grow leaps and bounds with all you wonderful people by our side. If you have any suggestions or feedback about the contest, do let us know them at email@example.com. We will be pleased to have them from you.
Till next time, it’s goodbye from CodeChef.
Every month we receive huge contribution from all you wonderful people, showing your kindheartedness and ‘will’ to volunteer your time to help others. We have decided to acknowledge it. And, we have dedicated a page to all our top contributors as a token of appreciation. We also will be acknowledging the top 5 contributors of every month with special CodeChef goodies.
If you haven’t already, check out our new top contributor page now, at ‘discuss.codechef.com/top/users‘.
Now, let’s tell you how to feature atop the top contributor page.
The only way to feature among the top contributors is by “contributing.” If you love programming and want to help others who do so, then jump into our forum. You can answer a question, ask a question, take part in existing conversations, or can simply show your appreciation for others’ contribution by up voting their replies. Your act of kindness in the forum will earn you some “Karma Points,” which will be the building blocks for your position on the contributors table. The more the Karma the upper will you be placed.
If you are a newbie to CodeChef, you can check out the current Top Contributors in the forum. You can look at their posts to understand their posting styles, to get started. Doing this will give you an insight on the top contributors’ approach towards contributing to community and the reference resources (if any) they use for answering questions. This will help you learn from their knowledge.
There also are some basic practices that can make you an imperative part of the process determining the top contributors. Firstly, if you have got the right answer to your question, accept it and vote it up. It acknowledges the contributors’ hard work and repute among the community. You can help others by finding the best answer to their question by voting up or voting down, the replies given to their queries. And, lastly you can contribute to the community by maintaining a friendly conduct. You can find some useful tips about using the forum efficiently in our meta tags.
CodeChef community is driven by passionate programmers like you and the more you contribute the more you help fellow programmers. Extend your helping hands to let each other evolve as a better programmer.
Till next time, ciao.
This is a truly interesting question, and I thought it would be a great way to have this opened to the CodeChef community so that we can get their views on various styles, as well as what works and what doesn’t. I’d also like to particularly invite other Editorialists (Anton, Shilp etc.) to describe their process and their reasoning etc.
All of these have their own unique style of Editorials.
Now, I’ll put in some of my views on what makes a good Editorial, and how I’ve learnt over the past few months.
This, I believe, is something worth striving for. Personally, I tend to often take up a very conversational tone in my Editorials (imagining that I am explaining everything from scratch). This tends to make my Editorials unnecessarily verbose. I fear that although the tone is light, I would lose the engagement of an experienced coder. And if its too verbose, I would even lose an intermediate one, while a beginner may wonder “why is this being mentioned”. Having said that, if it is made too technical, then anyone who doesn’t know what’s going on would stop reading. There needs to be a balance between what needs to be said, what is said, and what isn’t said – and striking this balance may not be easy.
In particular, I tend to provide justification after each assertion, while I think it is often better to leave the reader to try out justifying some of the things as he reads them, and if he fails, to find justification later on in the Editorial.
Try not to beat about the bush!
This is not contradictory to what I said earlier about it being non-verbose. When I say thorough, I mean that it should give a complete description of anything related to the problem. Things like “related problems”, “tutorials” on other sites, “mathematical concepts” from other sources – anything related to the problem and its solution should ideally be packaged under the one same Editorial. Imagine reading the solution to a problem on Heavy-light Decomposition. The next thing you need, is somewhere to practice. Imagine having an entire network of Related Problems from which you can shift and browse and practice one by one!!
However, the flipside is that the Editorialist needs to be aware of various resources, and should be able to call them up from memory as required. Again, calling up past problems from memory, is another personal failing (heck, in TC matches, I have often forgotten the 250 pointer by the time I get done with the 500!!).
Add as much information as possible under the one encapsulated Editorial.
Here, “Top-down” style is where the Solution starts with the problem, and then step by step talks about what is required and how each subproblem gets fixed. The “Bottom-up” style on the other hand, first describes the solutions to the subproblems and then puts them together to show you the solution to the whole problem.
Almost always, I’d say the Top-down style is better. It keeps the reader motivated instead of wondering (“why are we doing this”). It also tends to make the solution look simple. By saying “Okay, so X is the problem – that means we need Y – so how do we get it, lets say if we could have Y1, then we could get Y by Z. That just leaves getting Y1 – so lets try to do PQR…”, you are at each step making every requirement and consequent solution seem natural.
Compare that with saying, “First, let us consider Y1. To solve Y1, lets do PQR… Now, finally, you should see that you can get Y from Y1 using Z, and that means you have solved X.” Here, the reader is left wondering “whats up with Y1? Ouch, here comes PQR”.
As a concrete example, consider the following “Tutorial” on Heavy-Light Decomposition:
Problem: You have a tree, where each node has a weight. You can either change the weight of a node, or are asked to query the sum of weights on nodes along a path in the tree. You need O(logN^2) time per operation.
First, find the size of the subtree rooted at each node. Also, we will need to answer LCA queries, so fill in information for that too.
Then, for each node, let us call the edge to the largest (by number of nodes in subtree) child a “heavy” edge. Ties are broken arbitrarily. All other edges are called “light” edges. The set of heavy edges now forms a set of disjoint paths in the tree.
We count the number of different paths from a node to the root. Since you shift from one path to another only through light edges, and since each shift atleast doubles the size of the subtree, you would have shifted only at most log(N) times.
Now, consider each path as a segment tree, so when you update the weight of a node, it takes O(logN) time. Finally, for finding the sum of weights along the path between nodes u and v, first find the LCA w, and then find the sum of weights along the path from u to w, and v to w. Since from any node there are atmost log(N) different paths, overall complexity is O(logN^2).
Let us suppose our tree was a path. Then we could easily solve the problem using a segment tree.
Now, if instead our tree were divided into a set of disjoint paths, and consider each path as a segment, then an update will just take O(log(path_length)) time. And we know path_length <= N.
To answer a query (u, v), let us first find the LCA w, and then divide the path from u to v into u to w and w to v. Then, we just go across each of our segments and take the sum along the way.
Thus, if there are K segments along the path from u to w or v to w, we would like that K is small: since our query will take O(K logN) time.
Finally, if we were to make our segments in such a way that the largest subtree gets to continue the segment, then from any node, along the path to the root, we would shift segments only when doubling our subtree size. Hence, under this scheme, K is always O(logN).
This was to illustrate (hopefully) how the Top-down approach maintains motivation by assuming the least and filling in gaps only as they appear.
Now, I’ve noticed, atleast while learning, that when things look simple, they’re taken to be simple. And when things are taken to be simple, a lot of the intricacies are often taken for granted. In which case, the next time something like this comes up, one might not be able to reconstruct the whole picture by oneself. Thus, in cases where a technique can be applied widely, it might be better to describe it in bottom-up fashion. (One can illustrate use of Binary Indexed Tree by taking the example of dynamic prefix sums being required – or one can start with what Binary Indexed Trees are, and then show how they solve a dynamic prefix sum problem; the latter being favoured although it is bottom-up in this case).
This is just my personal opinions, and if you feel differently, do say so and explain why.
Its always nice to see the entire solution at one stretch. It gives you an overview of what to do, where you failed, how to get the whole thing, all in one picture. Thats what Quick Explanation is for. As far as possible, I’d prefer to have Quick Explanation + Detailed Explanation used. The Quick Explanation should indeed cover all aspects of the solution, and shouldn’t just be about dropping hints (that’s in some sense what “pre-requisites” is for).
In some cases however, just Explanation is good enough. These would be when either the problem is so simple that the Quick Explanation is the entire explanation, or when the problem is so hard, that the solution cannot be summarized without leaving large loopholes.
Whenever possible, Editorials should have a summarized Quick Explanation.
This idea I had picked up from a comment on one of my Editorials. It said, (paraphrased), “Often, it is easier to understand what is going on from the pseudocode rather from the explanation.” In some sense, it is saying that you can say “do this – do that” as much as you like, but it won’t hit home as well as the same thing in pseudocode. The way Mathematics has its own set of symbols: ∀. ∃, ∑ etc. which help clearly and concisely state things, Algorithms uses the language of Pseudocode to convey its ideas succinctly.
Key points of the solution should be written in pseudocode.
During the (Indian) IOI Training Camp last year (2012), we had a set of “coding commentaries” which concentrated not so much on the solution itself, as much as on the various bugs that people had made, and on all the points where the code could have been made neater and easier to debug. It would be great if we could have such sections in the CodeChef Editorials as well (they would largely help reduce the number of “what is wrong with my code” questions being posted after all).
The logistics of running this in a IOITC vs on codechef are very different: in one, you have twenty students coding in a two hour window, on the other you have hundreds-thousands of coders submitting solutions. As such, there is scope for such sections during short contests, wherein the “cooks” browse through a whole load of random submissions, spot bugs, find commonalities and add them to the Editorial. Tips on coding style are relatively harder due to the large and varied range of submissions (20 students writing varied shades of clean/dirty code is different from thousands writing varied shades of “code”: harder to classify dirt from cleanliness). In Long Contests, unless the setting panel made testcases to beat various bugs or suboptimal solutions, it is hard to browse through even “random” codes of people over 10 days and glean knowledge of bugs worth mentioning. Also, the fact that the short contests are far more high energy on the setting side during the course of the contest makes this section relatively more viable in such cases.
As important as it is to describe what works, it is also important to describe what doesn’t!
Editorials are the Editorialist’s labour of love.
Generally, when the Editorialist sees the problem, he first tries to find the solution himself. Alternately, he follows discussions between Setter and Tester and makes sense of the solution from there. Or, he looks at the codes of the Setter/Tester, and justifies what is being done from that point. And if all these aren’t enough (which is the case for the Hard problems a lot of the time), he takes the direct help of the Setter/Tester.
When he arrives at the solution himself, it is then often presented well.
However, in a lot of other times, what can happen (and what should be avoided) is that the solution is presented from the point of view of the setter. One of the comments that I got on one of my Editorials, was “This is just a description of the Setter’s code, and not a solution itself”. The point was very valid, and the fact was that since I hadn’t arrived at the solution myself, I did not outline the thought process of someone who is attacking the problem from scratch. What I had done was present justification for why what the setter had done works.
The Editorialist, by being privy to the solutions, should put in his own effort in making them palatable. His job boils down to answering “Given that this is the solution, and that I know it, how do I make someone who doesn’t know it see it?”
The use of diagrams esp. for Geometry problems, although it takes a little more effort, can speak a thousand words, and would consequently form a bond between the Editorial and the Editorialist (I always enjoy viewing my TRIQUERY Editorial, with the use of its colour-coded lines etc. and I’m sure Utkarsh would do the same for his TAACUTE Editorial).
If the Setter cooks the dishes, and the Tester tastes them, then it is the Editorialist who serves the dessert!
If you have any further suggestions on how to make Editorials better, do post them as answers in the discussion forums.
I hope this post opens discussions on what to do, and how to do all-things-editorials.
[If you merely agree/disagree with any point, post those as comments rather than separate answers].
I hope that this would grow into a “Guidelines/FAQ for Editorialists” or something in time.
We have some good news We have upgrade the compiler versions for the languages mentioned below. After receiving quite a number of requests for supporting C++11, we have also added a new language option for C++11 along with this upgrade. You should be seeing it in the language selection list while submitting the code. These are the languages and the upgraded version numbers.
|Language||Old Compiler Version||New Compiler Version|
|C99||gcc 4.3.2||gcc 4.8.1|
We will also be updating Go, C# soon. Do send us your feedback or suggestions on firstname.lastname@example.org
Till next time, it’s Good Bye from CodeChef,
We have been asked this question many times. “Y U NO COME ‘X’ YEARS EARLIER?”. While we want to feel sorry about it, the least we can do is start now. Many a times, all of us here at CodeChef ponder on “How would it be to go back in the past and start coding when we were kids”. While the gloom of the opportunities missed disappoint, the possibilities of what can be done inspires. And motivates.
Today, we introduce to you our new initiative . With this initiative we want to do what has not been done before. We want to take programming to every school student in India and make them compete globally. As a part of this program, we will be introducing the following:
LunchTime – The CodeChef Junior Programming Series. A new programming contest specifically targeted for the school students.
Online tutorials – For getting a new programmer started.
A mentorship program – Where each one of us will pledge time to mentor at least one school going kid.
Awareness is the most important issue that we believe we need to tackle. We need to reach out to schools and students, make them understand the significance of programming and show them the benefits and opportunities that come with it. And, we realize that we cannot do this all by ourselves.
We, at CodeChef, have been striving hard to provide you a platform where you can learn and have fun. With this sole objective,
We started with the long format of the monthly contests.
With the dream of witnessing an Indian team win the ACM ICPC we launched our ambitious Go For Gold initiative.
We provided a platform for every educational institution to host their own programming contest without worrying about the infrastructure. We took care of that.
We built a forum for the Indian programmers to interact and learn from the best programmers across the globe.
These are just a few of the many activities that we have relentlessly been doing over the past four years with the only goal of providing you a platform to learn and improve.
And never before, have we needed you this badly. We will do whatever it takes but this time we will need your help too. We urge you to join hands with us as we strive to take programming to the young India. If you have ever felt that you have started late and if you share the same dream and if you are willing to contribute some of your time, together, we’re assured that we can do this.
Please join us on this page: http://www.codechef.com/school/volunteer
As a volunteer of CodeChef for Schools, your responsibility will be many and varied. You can start small by providing one-to-one mentorship to a school student in your family or someone you know. You can introduce them to all the amazing things they can do with programming and the perks of competing in contests on CodeChef.
Also, you can visit your school or any school in your near vicinity and create awareness about computer programming and problem solving among the students. You can make it official by starting a Campus Chapter for your school under the guidance of the school principal or your computer teacher. This chapter will connect us to the new aspiring programmers through various activities like workshops, seminars, or online contests that we can conduct under your campus chapter.
This is a time to make a difference and we should not let this opportunity pass by. Your participation is critical. And most importantly tell your friends and family so they too could participate in this effort.
You may reach us anytime for any query, suggestion, or assistance that you might need to get started with the volunteering process at email@example.com.
There are more reasons than just rains, behind the delay of this post. But, we wouldn’t get into those. Let’s just say, we took a prolonged “Lunch” break. But, now that we’ve taken a breather, let’s pen down the story of the two June contests. We’d begin with June Challenge 2013.
The June Challenge began with the first showers of the season and while, we personally, weren’t monsoon-ready, we had all things in place for the contest. So, no pouring from the roof there. The flavorous problem set was cooked by TianCheng Lou, Vivek Hamirwasia, Vitaliy Herasymiv, Imran Sunny, Shanjingbo, Sergey Kulik, Anton Lunyov, Jay Pandya, Manish Kumar and Vamsi Kavala. The testing for the problems was done by Hiroto Sekido and Tuan Anh. Who doesn’t enjoy sizzling feast in the rains.
The problem setting panel this time around had debutant TianCheng Lou aka ACRush, who has a huge repute in the global programming fraternity. So, we were thrilled to have him aboard. And keeping up with his stature, he delivered the brilliant “To Challenge or Not” problem, which contrary to its name, did challenge the participants. The debut of ACRush as the problem setter meant that participants would not have to compete with him. But that’s just one big programmer less. There are plenty of them out there.
And it became apparent from the very first day of the contest. From the land of North Korea, we saw another rising star in kutengine making it to the top, right on the very first day in his very first long challenge. Yes, he too was making his debut. So, we had two roaring debuts in the June Challenge. Kutengine, announced his arrival at the big stage by being among the very few ones who had solved all the ten problems in the early days of the contest. And accompanying him in that league were the biggies like mugurelionut, evgentu, simplex_au, EgorK and his own country mate scli. While, that was the initial blast in the international rank charts, our Indian rank list too saw some thunder and lightning in the competition between vineetpaliwal, sharatiitr and anunay_arunav. However, the top spot was firmly held by the Indian juggernaut djdolls. And that sight changed only for a short duration when vineetpaliwal took the top spot.
After the initial blast, kutengine’s stay at the top was cut short, as mugurelionut triumphed him at the top. Just as expected by some of the fellow CodeCheffers. The topping and tumbling continued as we moved into the contest. The submissions were pouring in like the monsoon rains as the participants were enjoying the problems. The Lapindromes was the early favorite as we witnessed initial flood of submissions onto it. But it was Collecting Magical Berries, Count Special Matrices, and Just Some Permutations 3, which gave sleepless nights to many.
In the latter half of the contest, the weak test cases of Two k-Convex Polygons left participants tumbling over it. We received handful of complaints. And we acted accordingly. Our problem setting panel was made aware of it and looking at the severity of the problem they came to the consensus of re-judging all the solutions of TKCONVEX. Thus on the very last day of the contest the submissions were re-judged, but it seemed that the damage was done and it upset you guys. An an excuse, it wasn’t deliberate and it also is tough to avoid.
All this added some spice of the contest as the race to the pinnacle of rank charts was getting intense. The seventh day of the contest brought yet another interesting turn of events as we saw two new names (at the top of the charts) in evgentu and simplex_au claiming the first and second spot respectively. It has been quite a while since we had someone from Russia claiming the top spot. And hence we were excited. But, it became even more enticing as mugurelionut was just on their tails patiently waiting to make a move. But, contrary to popular expectations it was not mugurelionut who triumphed the two Russian to the top. It was the debutant kutengine, who after the initial blast, rejoined the party with a bang. He passed the top three and emerged victorious at the end of the June Challenge 2013. It wouldn’t be exaggeration if we call it one of the finest debuts of all time on CodeChef. So, a big round of applause to “kutengine”.
Now, let’s look at the final standings for the contest.
Top Ten Global Winners:
Now, onto the Indian rank charts:
Special mention to the top three participants with highest scores for the challenge problem “To Challenge or not”, except for the winners.
Top three Indian contenders:
Top three Global participants:
High five to all the winners.
Our winners came from the thousands who participated in the contest and made it a success. So a big thanks to everyone for joining us in our June Challenge. Here are the final stats of the contest.
That concludes the June Challenge 2013 in entirety. The editorials of the contest have been published, go savor them now here.
Now, let’s move towards the June Cook-Off 2013. As always, we were expectant of a contest high on competition and filled with fun. And considering the star cast, featuring Tuan Anh as problem setter and Pradeep Mathias doubling as editorialist and tester, our expectations were rather realistic.
The Cook-Off began calmly with no flurry of submissions in the first few minutes of the contest. Apparently, the users were nicely deceived by the problem statements. We had the largest problem statement for the easiest one, while the toughest one had the shortest. It wasn’t a deliberate move, but turned out interesting. But after the few minutes of silence in the submission charts, we got our first accepted submission on ATTIC by azneye, which got things rolling. ATTIC might have seen the first submission, but it wasn’t the problem to receive the maximum attention in the first leg of the contest. In fact, it was ALETHIO, which was finding all the love of the participants with maximum attempts turning into AC.
The first hour of the Cook-Off went out rather calmly with glimpses of some serious fight for the top spot. We saw four different names appearing on the top at different instances. With that it became apparent that the contest is nicely poised and could bring anyone atop the rank tables.
While some participants were mislead by the length of the problem statements, we saw some others who stumbled on to the toughest problem TRANSFIG as their first. This took away a lot of their valuable time. Even in the final 20 minutes of the Cook-Off we had very few users who successfully cracked all the five problems. And those very few individuals battled till the very last to etch their name as the winner. But it was raveman, who edged passed the brawny competitors like dzhulgakov, anton_lunyov, and artem_rakhov conquered the fortress of June Cook-Off 2013.
Here are the final standings of the contest:
For India the glory was brought home by:
Congratulations to all the winners, and participants who battled till the very last in the June Cook-Off 2013 in search of glory.
Here are final figures for the contest:
As soon as the June Cook-Off 2013 got over, the problems were moved to the practice section and the editorials were published as well. Oh yes, that’s true. If you haven’t checked the editorials already, go enjoy them now here.
All being said, now it’s your turn to let us know your thoughts, suggestions, and feedback about the two June contests. So, do send them our way at “firstname.lastname@example.org.”
In our next post we will be talking about the inaugural “LunchTime,” which we hope you all enjoyed.
Till then, enjoy the monsoon, with our July Challenge 2013 featuring Roman Furko, Jay Pandya, Sergey Nagin, Vinayak Garg, Hiroto Sekido, Vitalij Kozhukhivskij, Vamsi Kavala, Ivan Zdomsky, and Kaushik Iska as problem setters. We have Roman Furko and Sergey Nagin making their debut as CodeChef problem setter, so a big round of applause for them. The problem testing and editorials comes from Shilp Gupta.
It was in the year 2009 that we had started CodeChef. The goal was clear. We wanted to improve and expand the Indian programming community.
Over the last four years, we have taken some steps towards the goal. Today, it won’t be grossly incorrect to say that students in most of the top tier engineering colleges in India are making use of the platform.
It was in 2010, that we had launched the Go For Gold program and for the first time the CodeChef team visited the ACM ICPC Regional site to meet the participants in person. It was an awe inspiring moment for us. We met and interacted some of the brightest minds of India. On an excursion with these students, we also visited an engineering college, which could at best be termed a tier-2 college and interacted with the computer science students. And there we witnessed another reality. The students did not know what an online judge is.
The experience of meeting the two ends of the spectrum was humbling. It made us realize that there is still a long way to go for us . We came back more inspired. While winning the gold at the ACM ICPC by an Indian team remained to be an ultimate dream, another started creeping in. To try and remove this disparity between the students of the same subjects in different colleges. The task was not easy.
There were multiple options and our resources were limited. We were determined, we knew we had to do something but did not know what exactly.
On much pondering we felt that “Catching them young” seemed a reasonably compelling way to go. Making students aware of programming when they are in middle or high school and much younger will give them more time to explore, learn and love the subject. Although, how, was still a question to be answered.
We started talking to people. Our users, previous year ICPC winners, professors, and teachers. When the ICPC World finalists from India won the Go For Gold Cup for improving the best ever rank attained by an Indian team, we got a chance to speak to them in person. And this time the idea that we have been pondering about got some backing.
Now the question was what could be done to involve the young guns? Organizing training camps to get them started will be a good way to start. We had received a lot of feedback from people in favour of such trainings. But training was not something that we are skilled at. And more importantly was training scalable and sustainable?
We only knew competitive programming. We had only learnt that. We have believed that competition scales more than anything else. And after many discussions with various people, the idea took shape.
CodeChef for Schools took birth. As a part of this initiative, we want to target students in the middle and high school from across the globe and get them started to competitive programming. And we hedged our bets on the International Olympiads in Informatics. IOI seemed to be a right goal which the students can be made to target. IOI is to schools what ACM ICPC is to colleges and universities.
There are various issues that the Indian students face. This program aims to identify and address them. To ready the Indian students for the world stage, we’ve created a new programming series “LunchTime” specially for school students to give them a competition similar to the IOI and a practice ground to build their skills. The first contest of the series starts this Sunday.
It will be an ongoing contest to be hosted on the last Sunday of every month.
Though it is open to all for participation, it is specially meant for the middle/high school students. There will be separate rating system to be implemented for them.
A student will be identified to be studying in a school based on the entry that he makes in the “Institution” field of his profile page. For this to happen, we will be cleaning up our Institution database. As a part of this exercise we will be removing the entries that we do not understand. This may mean that some of you loose your institution entry. Once we clean that up, we will urge you to enter your institutions once again and choosing it correctly.
The other details of the of the contest can be found on the contest page. We urge you to come and participate and also spread the word among the school community.
There is very less participation from India at the IOI. Hence, we have extended our Go For Gold program to the Indian school students. As a part of this program, we will be giving away cash scholarships worth of 5 lakh+ rupees to the Indian student who wins the Gold medal at the IOI.
CodeChef For Schools is a small first step towards a big change to follow. And, we realize that we cannot do this all by ourselves. We will need your help. If you think we are doing something right and if you are willing to contribute some of your time, together, we’re assured that it can be done.
It is only right for us to acknowledge the support of our community to get this initiative in place. There are many people who have helped us continuously in terms of providing us much needed suggestions and help. We would like to thank them all and also acknowledge the guidance of Professor Madhavan of the IARCS for his continuous support in shaping up this program. We also want to thank Code.org for the awesome video that has inspired us a great deal and we are sure that it will continue to inspire a lot of other people.
So let us join hands and work towards making the young guns program a better tomorrow.
Everyone has his own reasons to be excited about a Sunday. For anyone who’s into competitive programing, nothing compares to the excitement of going up against some of the biggest names in the programming world. And for us, that excitement comes in form of making it happen. Yes, we have our reason in the form of the monthly Cook-Off’s. With that thought let’s take you through the absolutes of our May Cook-Off 2013.
Beginning on the heels of May Challenge 2013, the Cook-Off did not gave us ample time to take a breather.
And although, we have had a successful shift to the cloud, there still was a lot to be taken care of. Yes, we were running our errands a little over our capacity. We’re hardworking creatures, you see. Finally, somehow, we did manage to get things in place, moments before the Cook-Off and crossed our fingers all hoping that things go well. Thankfully, they did go smoothly.
The problem set for the May Cook-Off 2013 came from Abdullah Al Mahmud, who is making a comeback to the CodeChef problem setting panel after a period of almost two year. And what a comeback it has been! We received accolades for the problem set from so many of you. The problems before being served were passed through rigorous testing by Shilp Gupta. The highly sought editorials were being penned by Pradeep Mathias. With all the prerequisites in place, we took our seats waiting for you all to feast on the problem set.
As soon as the problems were unveiled, algorithm crafters from different quarters of the world were seen gorging on them. The first one to taste the sweet nectar of AC was raveman, who cracked the AMSGAME1 in just three minutes. The AMSGAME1 was proving to be an easy fodder as our first hundred submissions were made on the same problem. Slowly, the other problems were also attempted and amidst the early popular ones there was AMSGAME1’s name-twin, AMSGAME2. Contrary to it’s name-twin, the AMSGAME2 wasn’t an easy challenge for the contestants. There were lot of questions raised regarding how the game shall be played and they were all answered aptly. The flow of submissions moved to other problems as well, as we progressed.
By now, the race to the top had gotten serious. We saw shef leading the pack in the first hour of the contest. But his reign atop was cut short by Egork, who claimed the top spot in the second hour. The tossing and topping in the rank charts continued till the very last moments.
Despite the constantly changing names in the ranklist, there weren’t many users who were finding it easy to get through the problem set. Even in the final hour of the contest there was only iwiwi, who successfully cracked AMROOK, which made it evident that the May Cook-Off wasn’t a smooth sail for everyone.
At last, in the final 45 mins of the contest we got dzhulgakov as the first user to have solved all five problems. It surely wasn’t going to be easy with biggies like anton_lunyov and iwiwi going all guns blazing to secure the top spot. This was quite interesting as it marked the beginning of dzhulgakov’s journey to the paramount. Slowly and steadily, dzhulgakov managed to conquer the top spot and successfully defended it till the contest was over. There weren’t many others who succeeded in cracking all five problems. Only five out all the participants were able to crack all five problems.
And to tell you who secured the final position on the podium, here’s the rank list for May Cook-Off 2013.
So, a special round of applause to them and to everyone who participated in the May Cook-Off 2013 and turned it into a successful contest. You guys are awesome.
Now, let’s look at the overall stats for the contest.
With that, we now move towards the June Challenge 2013, which will begin on 7th June 2013. And let’s tell you in advance, we have a pleasant surprise up our sleeves for this contest. To give you a hint let us tell you that a big name from the programming fraternity will be joining our problem setting panel. Any guesses, who it can be? Do let us know.
As of now, enjoy the nicely cooked editorials for May Cook-Off 2013. We regret the delay in publishing them once again. Do not forget to ask your doubts. And in the mean time you can catch up on inside of the moderation room of the Cook-Off – there is some interesting conversation between the panel. Check out their chat history for the entire duration of the Cook-Off here!
We hope you’ve enjoyed the May Cook-Off 2013 as much as we’ve enjoyed putting it up for you. If you have queries, suggestions, or an honest feedback, you can always send it our way at email@example.com.
Till next time, it’s adios from team CodeChef.
See you at the contests.