Hi fellow Codeforcers,
Merry Christmas, I hope you are all well. Apologies in advance if this question has been raised before. I noticed that in Codeforces div3 and education rounds, the standings are calculated as the sum of the times to solve each question. However, on previous sites where I used to practice, the standings are calculated as the maximum of the times needed to solve each question. For example, on Codeforces, someone who solves q1 by 1 minute and q2 by 60 minute will receive score of 61, whereas someone who solves q1 by 59 minute and q2 by 60 minute will receive 119. In my opinion, I believe these two contestants should be ranked equally as they both finished the first two questions in the same amount of time (if anything, the second contestant solved the supposedly harder question in less time). Hence, for those who believe the current ranking system is fairer, I would love to hear your perspective and understand why the ranking system is calculated this way instead?
Edit: Just came across this older discussion https://mirror.codeforces.com/blog/entry/127921. Explanations here are very convincing!
I think this is a good thing , since then , the cheaters they submit all there solutions at the end of the contest , so the total penalty they get is quite high, thus not benefitting the cheaters.
That's how ICPC rules work. Finding the right order to solve problems, and solving problems in increasing amount of time to minimize the penalty, are core parts of contest strategy. You're not participating in the IOI.
Fairness of a scoring system isn't really a rigorously established concept. Fairness goes to the level above it — judging system. There is a number of principles for that:
Objective — there is a rigorously defined judging procedure and all solutions are judged according to it
Complete — judging procedure covers all possible cases and outcomes and defines the order of actions and assigned verdicts
Blind — all solutions are judged in equal manner, independent of who is the author
Transparent — all the information about judgement process is publicly available after the competition is over
If any of these is violated, then you can claim that jugding system can be unfair. But automatic online judge systems easily fulfill all of these. This is why CP is free from all the mess that happens in other kinds of competitions.
Speaking about scoring systems
In the end of the day scoring system is just arbitrarily chosen set of rules for the game you agreed to play. Any participant can adapt their strategy to it and this is fair to do so. From that point of view all scoring systems are equally fair.
Variety of scoring systems exist, many platforms make their own adjustments to them and you can make your own. (I use my own on our local online judge.) Among the most popular ones you have IOI, ICPC, CF Round contest systems.
When designing a scoring system a number of factors should be considered:
Time/speed factor — should the one who solved problems faster receive a better result?
Problem difficulty factor — should the one who solved harder problems receive a better result? If yes, then how to define a problem difficulty?
Partical solutions factor — how to evaluate solutions that do not pass all the tests?
Efficiency factor — should the one who submitted a better solution (in terms of execution time, memory usage, solution complexity or even submission size) receive a better result?
Isolated or not — should results of other participants influence your results? (I recall Lockout system here)
"Penalizing" or not — should additional submissions in the end possibly make your final result worse?
And none of these factors have a definite answer on what should be better for a scoring system. Thus all of them remain as a personal preferences of the OJ developers and problemsetters.
P.S. Also, in CodeForces round system you can solve Q2 first and only then Q1 to gain more points due to lower penalty on a higher valued problem.
Thanks so much for this detailed response. Makes a lot sense seeing it from your perspective.