DOMjudge / domjudge

DOMjudge programming contest jury system
https://www.domjudge.org
GNU General Public License v2.0
739 stars 258 forks source link

--- #2730

Closed zapotocnylubos closed 1 month ago

zapotocnylubos commented 1 month ago

sorry, wrong default repository target...

vmcj commented 1 month ago

@zapotocnylubos is it possible to easily extract the parts you did for partial scoring? We might want to support that and maybe your interpretation is the same as ours so we can base our work on yours..

zapotocnylubos commented 1 month ago

@vmcj we did not stick to any standard, so the main problem is that you wanted to adhere to some standard, but we needed it quite fast, and it is not yet 100% integrated, for example, we did not have time to change the scoreboard behavior. I know about https://github.com/DOMjudge/domjudge/issues/2518, our solution uses percentage based scoring, because you can change the number of point in the contest - so for example contest 1 has problem 1 for 100 points, but contest 2 has problem 1 only for 20 points. Then we define testcase groups, each having percentage assigned - summing up all testcase groups should result in 100%. So basically this

With partial scoring testcases are grouped in testcase groups. If the submission solves all testcases in the group, the points for that group are awarded.

The main requirement for partial scoring is that lazy evaluation needs to be turned off so that each testcase group can be correctly computed and the resulting points summed up. We show the points from the "best" submission on the submission list.

Adhering to this basically

The points for a submission is determined by the sum of the awarded points per testcase group. The points of the problem are determined by taking the maximum of the points of all submissions to that problem.

This is the PR we implemented our solution if you want to have a look at the code and screenshots https://github.com/delta-cs/seminar-domjudge/pull/101 (its in czech, but google translator should help)