How come chinese and eastern european people dominate programming competitions like codechef while we hardly ever manage top 3. Some of the times not only professionals even their high school students manages top position like this time. How the hell they practice???
Well, even though @kcahdog’s answer might seem ironic, he’s pretty much right.
Such questions should NOT be asked, for the simple reason that they will never be answered. Why?
Simple to explain too. Because top competitors apart from @mugurelionut, never care to explain things and help people. I don’t know why this happens, but, my guess is that people who stay in top 10 consistently don’t want to waste their time by explaining their approaches. Possibly they feel that it’s a waste of time for them or they feel that people here won’t benefit much… I don’t blame them. Even myself, after looking at a code I’ve written on my own for some interesting problem after such a long time, I look back and think: “How the hell did I remembered that?”.
The thing is that the approach someone takes can make perfect sense to that person, but, explaining it to others might not be so easy… And that too requires time.
Maybe @mugurelionut does it because his work is very closely related to research and/or theoretical foundations of algorithms (afaik, he’s a university teacher and is now at Google). I guess he takes a very different approach to contests from say maybe Gennady (who is a student and does this just for the fun and decides to show up once or twice a year at a Cook-off to win it easily…Being a student he has not much work stuff to worry about and his mind is still “young” in a sense [sidenote: I’m 5 years older than him and will never know half of what he knows now in 5-10 years]) or even from ACRush (which, afaik, is a Software Enginner at Google) which, being at the Engineering level only cares to make things work as flawlessly as possible, as fast as possible…
The thing is, the background counts a lot and the dedication also counts a lot… No matter where you come from…
As a second sidenote, as you all know, I’m just an “average competitor”, I can’t call myself a beginner anymore, but, I’m still aware that I’ll never make it to the top. Regardless of that, my participations here allowed me to think more rationally and more algorithmically than before, to explore the features and toolset of a given language, and in fact, I’ve managed to speed up programs written by my dad and my dad’s graduate students by applying concepts like HashTables, Sorting, searching, pre-calculation, etc on a totally different language than competitions ones, and also, on totally different programs too (Generation of meshes of large concrete dams and water level measurements at some of the highest dams in the world using Matlab, can all be speeded up by using hashtables to find critical water levels fast, to sort data by a given parameter, to use sets to “delete” duplicate measurements, etc and it’s funny that attending Codechef contests allowed me to become so helpful to a Civil Enginner like my dad at his work!)
By the way @ACRush is not appearing in the long contests.
Come on now, I’m high in the ranklist too (here, not at other sites :D) and I explain stuff rather often. It’s not true at all that explaining an approach to someone can’t help you - it helps consolidate your ideas for the future, at least. And you’re getting positive fame among the community. It’s low-cost, relatively high-gain tactics
Hey @xellos0, I know! And I also love explaining the stuff I know best and I love explaining things to people… I just feel that most of the top competitors doesn’t do that because maybe they just don’t feel like it, or simply they are more shy than the rest of us! I never said that explaining isn’t good, in fact, I love it and you must have also read some of the stuff I’ve written
I think they should come forward more often and explain things. Its a gain gain thing for both the parties. If they will explain things then they can get better competitions from other which will in turn motivate them to further increase their skill and the person learning from will be benefitted in ways everybody knows…
might be caught up in work or got bored of becoming topper every time. if so then thats my point. He is not getting that level of competition here. He should come forward and give some guidance to others so that he can see some tough challenge in future. In that way he will have something to look after for and won’t get bored.