Marking Schemes of Contests

Hey guys! This question had been in my mind since a bit long.

When we come to marking schemes of different website on contests, we see drastic differences. Eg- Hackerrank follows a partial marking where every test case carries some marks/weightage (may/may not be equal to other test cases), while Codechef is a full or zero (in Q without a sub-task) and sites like hacker earth follow a middle way (some Q partial marking, some Q full or zero).

So I want to know that why does Codechef prefer its system of “Zero or Full” in case of no subtask?

I mean, in my opinion, this full or zero would give zero to even a program which solved all test cases but 1 (Increases amounts of ties, has chances of being seen as ‘unfair’ to some). And personally I feel that partial marking helps in reducing the number of ties between contestants. And it kinda seems “fair” to get some points on your program/algo which passes some of the test cases.

So, why does Codechef prefer its marking pattern?

(Another example to illustrate my point-

Lets say a 25 point program with 5 test cases is on Hackerrank and Codechef, and let its first sub task (Sub Task 1) be of 5 points, where values of inputs are small. And Let Sub Task 2 (i.e. the next Subtask after Subtask 1) has 2 test cases dedicated to it, where values of inputs are kind of medium-large.

2 people, A and B, write programs. A’s program is slower than B. And even B’s program is not ideal, but its kind of better than A. A only passes the first test case (Sub task 1) and gets TLE while B passes 2 test cases and gets TLE in 3rd test case, which belonged to Sub task 2.

On Hackerrank - B gets 10 points while A gets 5 points.
On Codechef- Both get 5 points for passing Sub Task 1.

Question- Why does codechef prefer its marking pattern, over complete/100% partial marking?)

1 Like

One other question usually comes into my mind that why doesn’t codechef set scores of the question according to their difficulty level. I mean if someone has solved 2 good problems in long challenge then his score is equal to the to the person who has solved 2 easy problems. This doesn’t seem fair .

1 Like

The one who would be solving the difficult one would surely be able to solve the easy ones as well, so in short both of them can be equal only when they would be of the same level.

3 Likes

@harry1995

I see your point of view. But easy and hard are far apart, so we can easily say “One who solves hard can solve easy”

But you cannot apply the same analogy to all medium-hard and hard-expert problems. Meaning, sometimes the medium problem might be too tricky/requires a certain trick algo that one may not be able to solve it while one may solve the hard problem. (I.e. medium problem s easy to code and implement, but tricky to approach/think)

If you see contest on hackerrank, you’d see that many times harder problems have higher % of successful submission/accuracy than medium problems. (I remember when I was once in some contest, the medium had only 21.96% accuracy while hard had over 40%. And no, the number of submissions to both of them were large enough, [meaning case of only 10 people submitting solution to hard and 4 getting it right is not valid here])

In a gist, I will say its not ALWAYS necessary can apply the analogy that you proposed, although its valid in majority of the cases [I REPEAT, I accept that yor analogy is valid in most of the cases, but exceptions DO exist! That’s my point. Hope I put it across amicably :slight_smile: )

1 Like

Why don’t you see this one as a positive side. That’s a unique feature of codechef that make the programmers to work hard for getting full score ratger than partial score. You know what, i like codechef because of this differ feature.

Just think if codechef follow other website pattern than what will be the difference between this and other ones?.

Another feature of codechef is that it will not reveal test case unlike other websites(codeforces, hackerrank, hackerearth) does. And i can say that this one is the best because it makes you think again and again why did your answer being showing WA rather than AC.

Codechef is totally inherited from SPOJ having same features that codechef does unlike SPOJ does not reveal other solution.

So at last i wanna say that take all these stuff in positive way and Enjoy the thrill of coding in codechef.

If you still have any query then you can directly mail them at relevant section of contact.

2 Likes

Most big international contests, such as ACM-ICPC, IOI, and CEOI, use the same approach: it’s zero-or-full for every subtask, if subtasks even exist. So having the same approach here is great for all the people preparing for those contests.

Moreover, I’d say it also makes sense because in a professional setting, writing a wrong algorithm and thinking it’s correct actually causes more problems than just not writting an algorithm at all. And from what I’ve seen, most of serious contestants on codechef are at least in their last high school years, or are already professionals, so it’s helpful that codechef promotes this mindset.

4 Likes

Hmm…I wonder why XD. Lets wait for someone to answer :slight_smile:

I got your point but still I personally find getting 0 in a particular question than getting it partial correct gives you a push to get 100 and more than anything else it’s about your logic than getting points.

I agree with what you say here. I too find getting partial marks better. That’s why I asked this question. Lets see what others have to say. :slight_smile:

You misinterpreted my tone. I did NOT mean to imply that its bad thing. I was just curious as such what codechef sees in implementing this scoring system. It was curiousity, nothing else. :slight_smile:

This is by far the most satisfying answer I got. Sure, if all big contests do so, then why not codechef. Yes. And I see your point of how algo should be refined. Thanks dear ^^

1 Like

It’s ok! I am not pointing you buddy! I m also presenting my views to others. :slight_smile: