I see CodeChef just sums up the time taken to solve individual problems instead of taking the max time to solve all of the problems. Isn’t it odd? Even in competitions like Google KickStart etc and many other places only the latest correct submission time is taken for ranking.
Let me explain this with an example,
Suppose there are 3 questions in a contest,
Question 1 (Easy),
Question 2 (Medium),
Question 3 (Hard)
Suppose User 1 solves the problem 1 in 10th min, problem 2 in 25th min and problem 3 in 70th min with 1 penalty
Total time according to CodeChef ranking algorithm = 10 + 25 + 80 (+20 for penalty) = 125
As per the latest submission time, total time = 70 (+20 for penalty) = 90
And User 2 solves the problem 3 first in 30th min, problem 2 in 40th min with 1 penalty and problem 1 at the end in the 45th min.
Total time according to CodeChef ranking algorithm = 30 + 40 (+20 for penalty) + 45 = 135
As per the latest submission time, total time = 45 (+20 for penalty) = 65.
Clearly, CodeChef’s algorithm will rank User 1 higher(better) although User 2 has actually performed much better. Just because I opened the wrong problem first to solve say relatively difficult in comparison to the easiest question, does this make sense that being User 2, I would be ranked higher (i.e., worse in rank list). This hurts especially when there is a competition like ICPC.
@admin Please see if anything could be improved here.