Should CodeChef increase the duration of the long Contest to 2 weeks?

UPDATE: We got some good suggestions. Thanks to all of you for putting in your time and effort. The ones that we think we should consider and a few that we found interesting are:

  1. Start the long contest on the first Friday of every month and let it be a 10 day contest without changing the duration - m1sterzer0
  2. Give away goodies to top 6 Indian and top 3 Global participants for the best challenge score outside the top 20 and top 10 respectively - anton_lunyov
  3. Allow the ability to create virtual contests for the users - mukulgupta
  4. pypy support on SPOJ to make Python more competitive - m1sterzer0
  5. Host two contests per month - A few people suggested the same.
  6. Have two testers to test each long contest - iscsi

We are considering implementing 1 and 2. We like 3 and will consider adding it to our priority log. We will check the feasibility of 4 with SPOJ and try and get it done. 5 requires a lot more commitment and effort from our side and at the moment we cannot take it up as we have so much else to do. We will surely consider this for future. 6 is a good suggestion too but then we need to work on the modalities of the same and may consider this in future.

There are a few suggestions made here:

  1. Let the contest run for full 2 weeks instead of 10 days, that way we are guaranteed to have two weekends to devote to the contest irrespective of the month. Meanwhile, weekend is not Saturday and Sunday in every country. For example in Holland it is some other days which are weekdays in our country. It could be different at more places also. CodeChef is a global platform, and when a contest is not in multiple of 7 days, that amounts to variable amount of free time among various participants.

  2. The 9 binary problems should get locked 3 days before the contest gets over. That is, they move to practice section and editorials are up, but challenge problem remains open in contest arena. This will increase the response rate to challenge problem. Otherwise most of the time we are in a dilemma whether to increase our score by a fraction or try to solve some unsolved problem and get a full point. Most of the time I end up ignoring the Challenge problem for the greed of a full point. Challenge problems are very interesting and require different skills than exact solution type problems. Having a separate window of time for challenge problems will increase participation for this problem and we will have a greater diversity of ideas coming up for this problem. I would personally want to devote more time to this problem but the reward currently is not so large for it, only some decimal points.

  3. We introduce some prize for the best challenge problem submission over and above other prizes awarded. After all, this type of problem format is very different from other problems and forms a category of its own. Though we are mixing the two type of problems in Long contest for Tie Break etc we could keep its importance high by having an additional prize for best challenge problem solution submission.

We (at CodeChef) like the suggestions and our response to the same has been mentioned here. What we have proposed is to accept points numbered 1 and 3 above.

We do not believe that we should lock all the problems and force people to solve only challenge problems for a particular time frame. We think that mostly people who will actually fight for a fraction of a point will be those who are at point 8 or 9, who are competing for the top honors. If I am at point 5 or point 6 or lesser, I would rather spend those extra 3 days for solving another problem (or possibly more) - which seems only fair. This can potentially fetch me more than 1 point but more important than that I can invest that amount of time in learning some concept to solve another problem. We do not want to restrict this choice of the participants and force them to solve a particular problem.

We believe that we must extend the duration of the contest to 15 days (starting on the 1st and ending on the 16th of every month). This will ensure the addition of two weekends irrespective of which country one lives in. The flip side to this is that now people have to wait longer for the editorials.

We are also considering some additional recognition in the form of some reward for the best submissions for the Challenge problem as mentioned. This may make contestants give more attention to the Challenge problem.

However, we want you all be included in this discussion and hence we want you to share your thoughts here. Please add your options as an answer and vote up for those options that you want to be implemented. Once we have a consensus, we will try and implement this at the earliest.

34 Likes

According to me, as I am in a learning phase right now (we are always in a learning phase, but I meant a beginner) and these propositions are somehow biased towards top scorers. Apart from waiting for a long period for the editorials, its okay. I do not know how to fight for the fraction points, not up to that level now so can not comment on that part. Overall, a change is good! And, it should be tried once to see the effects.
:slight_smile: Thanks
I love Codechef.

2 Likes

I completely agree with points 1 and 3. I think point 2 is also perfectly acceptable. It often happens that I don’t attempt the challenge problem and look to solve other problems to attain a better score.The challenge problems are great and locking other problems 3 days before would obviously increase participation. So I recommend that point 2 be accepted as well.

1 Like

I’m totally in favor of points 1 and 3 but not 2 as most of the people are here to learn than anything else. If you lock the problems, a number of people would not be able to give their best shot and it actually might make the people lose interest in the competition as there will be only one problem to solve and it might get frustrating after a while.

But really 2 weekends might just get my ranking up! Implement point number 1!

2 Likes

YESS! Definitely!

@admin I agree with extending the problems to weekends but I think adding 5 or 6 days to the initial time is a little bit too extreme. I think this must only be done if there is no better way of covering the weekends. I completely disagree with point 2, I think the whole purpose of competitions is to push people to make critical decisions and solve problems under this kind of pressure. I think that if point 2 gets accepted it would be unfair to those in the higher positions that could actually solve all the problems (and I’m not one of them but I want to get better on fair terms), I think that instead of changing the contest people should try to get better enough to solve the given problems before the contest ends. About the rewards, well, I think it’s a good idea, it would motivate people but do as you please, I really have nothing relevant to say about this.

And I would also like to know how points for long contests are awarded…

1 Like

Hello,

I will provide my opinion on this matter as well, and will start by asking, why was this idea suggested in the first place?

The format 10 days - 10 problems, is in my opinion more than well suited to the philosophy of the Long Contest format, that is to provide some easy and medium problems that can be solved by anyone who puts some effort in reading editorials, contest after contest and looking at the setter and tester solutions once the contest is finished.

The main advantage of this is that even people who are not very skilled at programming can begin to gradually see results as they will improve a lot by doing this and it will keep them motivated to keep studying and learning with the best.

Once this is done, they might be able to start working on some of the medium difficulty problems and, at last move to the hard and challenge problem.

I would also like to point out that for someone who is not very experienced with algorithms, even grasping the ideas described in the editorials can take up to several days if not weeks. It’s not in one day or with one implementation that someone who didn’t know about Fast Fourier Transforms will become good at implementing solutions that use them, for example.

It’s a very hard learning process that takes a lot of time! (Which is something I personally don’t have :(…)

So, up to a point, my idea would be to promote some sort of discussion panel, where, say, up to 2 days after editorials are out, the setter of each problem remains available to answer any queries regarding ONLY his/her own problem to anyone who might have them. I believe this, if done on a focused way, would benefit many people!!

Now, regarding the Challenge problem, I don’t believe that having some extra days solely for it would help anyone but ACRush and several other top solvers… Some solutions for these problems are way over 500/600 lines which makes them literally impossible for a beginner to read and understand…

We should remember that some top solvers can solve 8/9 problems in one day or two, while other people struggle to get AC for only one problem… And to benefit beginners I think that we should stay with 10 day format, as the only way to learn is by struggling and working very much.

Hence, I think that by extending contest duration, it would serve mainly to keep the fight between ACRush and someone else active on the challenge problem… And ACRush always wins… Which I don’t believe that it’s something that beginners are very much interested in, because it wouldn’t be with 3 extra days that they would solve Challenge problem… That three days would be better spent analyzing editorials for easy problems… IMHO.

Best regards,

Bruno

13 Likes

Totally agree with points 1 and 3. Hope it gets implemented from FEB challenge.

1 Like

FACT : I am a beginner.I really really want to be good at these challenges.

But see how following things affect my motivation :-

**HOW I ATTEMPT CODECHEF’s PROBLEMS :
**1) On 1st/2nd of the month I open the codechef’s LONG challenge contest page and then I go for the problem which is solved by maximum number of people. I attempt that problem.
2) But manytimes it has happened that it **took me about 7-8 hours to figure out the solution.

3) For example, it took many hours for me to realize the SALARY problem’s solution. This situation demotivates me.

Now as a beginner what I think : "I am not able to solve this easiest question.How would I attempt rest of the other problems?"

4) Say Somehow I manage to solve this easiest problem.But by the time I figure out the logic behind the next 3 most solved problem its 9th of the month.

5) Suppose I DARED to write a solution for a hard problem which I think would work. So after 3 days I figure out a logic and wrote a solution only to find it TLE!! e.g my TEAMSIZE submission http://www.codechef.com/OCT12/status/TEAMSIZE,abhinav1592 . AND this is where morale goes down.
After seeing the editioral of TEAMSIZE I saw BIG-Really BIG differences in my solution and editorial.

6) In the end I just keep waiting for editorials. Even if I try hard its difficult for me to understand a few editorials too.

7) Some problems seem like untouchable to me. When I see other people around me solving way too fast I just keep thinking how he would have solved this problem.
e.g. those which require a combination of concepts.

Now by extending the contests, a beginner like me would get more time to think for other problems in terms of its implementation.

Apart from this,I know all of the top people were beginners once but it would do no harm if they post some of their experience to guide us better.

5 Likes

I believe that a 14-day contest would be better because of containing 2 week-ends for everyone. Of course, there will still be people with more time to devote to the contest and others with less time for it, no matter how long the contest will be.

However, extra days added to the contest (because of problems added late or updates in the test data or judging programs) could spoil the whole idea.

Apart from that, I think the contest is fine as it is now (extra prizes for the challenge problem won’t hurt :slight_smile: but I don’t think locking problems is the way to go).

3 Likes

I think 10 days is a perfectly fine length for the contest and don’t think it should be increased to 14 or 15.

There will never be any length of contest which allows everyone to participate for exactly the same amount of time. Time zones aren’t so far apart that some people are more advantaged than others in terms of how many weekends they have during that period! The only differences may be a few hours on either end, which a 14 or 15 day contest isn’t going to change at all, as days near the start or end of a contest could be considered more important.

The recent contests which have been delayed by a few days have really felt a bit too long. (And that’s despite me actually solving the hardest problem in that delay period.) Those people who need more time can happily continue solving them in the practice room. I could point you to about a million comments by people asking why their code is wrong as knowing so would help them learn - being able to access editorials and correct solutions after the contest has ended provides a means to do this, so stretching out the contest isn’t really advantageous to them.

As for the challenge problems - personally, I’ve never enjoyed them as much as problems where there is a definitive yes/no answer - that, combined with the fact that I know I have absolutely no hope of reaching the top 2, usually means I don’t even attempt them.

I don’t believe attaching a prize to the top challenge score is going to accomplish much though, as we all know who will win that :slight_smile: Since the top 2 already have prizes, perhaps some prizes could be randomly allocated - eg, chosen at random from the top 10 or 20 challenge scores, not including the top 2 globally. That would definitely be an incentive for people to work on the challenge problem. (As would changing the prizes back from top 2 only to be spread out amongst more people, like they used to in the beginning.)

11 Likes

Finally I’ll get two weekends to solve the problems :slight_smile: Its quite difficult to manage being in office for the whole day and then coming back and solving the problems. Now I can devote two sat-sun for codechef :slight_smile:

It will help high-skilled coder,in case he is missing some concept to solve problems.
But it will not help low-skilled or beginners as problem level is too high (except 2/3 question) for them. It does not matter how much time code-chef are going to give,they got frustrated after struggling for 7-8 hours for a single question (except the two problems that got highest AC). and for them contest got over after solving two problems. So its better to give 50% problems keeping in mind the level for beginners .

@admin I haven’t been around here very long – this was my first contest here (ironically I entered to force myself to become a better python programmer, but I often ended up abandoning Python for C++ for speed, but I digress…). I can say that I appreciated having 2 weekends to work the problems this time, as the weekdays get eaten up with work for my job and family time. That said, I also agree that more than 10-11 days feels a bit too long.

It seems that your choices are:

  • Leave it as is (perhaps with the extra recognition for the challenge problem)
  • Always run the contest from a Friday afternoon IST to Monday afternoon IST (gives most people in the world 2 weekends)
  • Run it for two weeks as suggested (which makes the contest a bit too long)

As for me, I would probably selfishly vote for the middle alternative, but if that is impossible, I would probably just leave it as is.

P.S.: We need pypy support on SPOJ to make Python more competitive. If anyone has a suggestion on who I should try to influence here, I’ll take any suggestions.

3 Likes

Codechef has been a wonderful platform and I owe it a lot for whatever I have gained from it. However, I am not completely convinced with the above suggestions.
I’d like to stick with the present format and I reiterate triplem’s viewpoint.

  1. Firstly, no matter, how many days the contest gets extended, we will never be able to ensure everyone gets an equal time. I, for instance, being the lazy person that I am, keep on delaying my submissions till the end of contest is near.
  2. Secondly, I believe, due to the format, it is inevitable to fully prevent discussions of live contest problems among peers, and on other online platforms like stackoverflow, etc. Extending the contest will only add to more frustration leading to more of such behavior. There are multiple instances of comments being posted by people to find out why their solution was wrong/slow. Often, the slightest hint converts a WA/TLE to AC. By extending the contest, the access to editorials is delayed and that doesn’t really help them.
  3. I agree with the 3rd point of adding some incentive to try and solve the challenge problem as it requires a different skill-set. It will surely bring in more solutions for the challenge problem.

Apart from the suggestions already discussed, I’d love if codechef allows its users to conduct virtual contests (without hassles) so that the problems which they couldn’t solve during the long/short contest and other archive problems could be clubbed in and practiced in a contest-environment.

7 Likes

My opinion is that 10 days is enough (I would get too tired for answering all these annoying comments “Why I have WA?”, “Why I have TLE?” during 14 days :P)

But encouraging the best submission for challenge excluding two winners seems very good idea. In this way we could really involve more contestants in solving this problem and not only those who solved almost all the problems.

##What I think is that top 3 submissions for challenge problem excluding global top 10 and top 6 Indian submissions excluding Indian top 20 should also receive goodies as top 10 and top 20.

Now we could even have hundreds of contestants who simply will try only challenge problem :slight_smile:
Of course exact numbers could be discussed later.

8 Likes

Edit : Few more people have filled the form.

This is the response of 33 users on this form - https://docs.google.com/spreadsheet/viewform?formkey=dFZWVHNkZ3BPdUJjeTN5ZUNqYldiZkE6MQ

(Its less than 1% of total users, but majority coincides with my opinion :p)

Users who have voted = {vinayak garg, n2n_, mukulgupta, karthsharma, anudeep2011, djdolls, iscsi, bela.mervado, javadecoder, Pranjal Gupta, ani94, punitsingh, pranjaljain92, abscon, ujjwal12, gaurav708, vivek_altruist, aj_1992, kuruma, ksh78, coolboy190, v1nay5on1, kuchumova_mary, anton_lunyov, junior94, hynekdav, archie004, Rubanenko, davisisac, sourabh912, phantom11, coderfrmhell, Betlista};

As you can see -

  1. Users are happy with 10 days long contest. In fact more people want to decrease days than increase it. But the 10 days should include 2 weekends.
  2. Most users don’t want locking of problems.
  3. People are equally divided over Challenge problem to have “Double points” or to stay with “Current format”. But I think Anton’s scheme is best.

Apart from this @mukulgupta’s idea for virtual contest is quite good.

4 Likes

Hello all,

I am also excited about virtual contests for the users, but how would this work exactly?

There are some things that need be thought about it, namely:

How would the virtual contest work? Would it be like the ones on Codeforces (where duration and rankings are simulated, as if it was a real contest), or as our Long Contests here last 10 days, we would do something different?

I think that it could be nice if people could create their own contests, with problems from practice section for example.

The format regarding the level of difficulty of all problems could be taken into account and the person would be able to choose problems from all 4 sections (Easy, Medium, Hard and Challenge) and create an individual contest where real practice could be done :smiley:

Maybe we could also implement some sort of virtual ranking, that would indicate the ranking that the person attains on the virtual contests only!!

I think it could be a good idea :smiley:

Best regards,

Bruno

1 Like

I agree with the suggestion of m1sterzer0 that the long contest should be a 10 day contest starting on the first Friday of the month. However, besides this what I feel is that the Submission Run Log should be made public to the users after the contest so that they can see into the test cases and easily find the bugs in their submitted codes, before switching on to the editorials. This will definitely fetch the editorial writers some time to formulate the editorials.

Also, any programmer always want to get his own code accepted before switching on to some other users code if he has formulated the algorithm. This will help him find his implementation mistakes and write bug-free code in the future.

This will also reduce the various blog posts, in which a frustrated participant is compelled to ask the other users about the bugs in his code when he gets a Wrong answer or Runtime error. We all know sometimes how difficult it is to understand some other user’s code submitted during a long contest.

Lastly, this Submission Run Log concept will also benefit the users during practice sessions as it will help them to recognize their mistakes in a much faster way, and solve larger set of practice problems.

3 Likes

In my opinion, Increasing to Two weeks will make the contest boring. If you want it to make a multiple of 7 IMHO it is better to make it 7 with 7 problems or so