From f452a129676e1eaa903a927fae17846fa9acb4cc Mon Sep 17 00:00:00 2001 From: Luca Versari Date: Thu, 31 Jul 2025 21:22:06 -0400 Subject: [PATCH] Fix RWS to follow IOI rounding rules. --- cms/grading/scoretypes/abc.py | 2 +- cmsranking/static/UserDetail.js | 3 ++- 2 files changed, 3 insertions(+), 2 deletions(-) diff --git a/cms/grading/scoretypes/abc.py b/cms/grading/scoretypes/abc.py index af0106e5c1..f36542606e 100644 --- a/cms/grading/scoretypes/abc.py +++ b/cms/grading/scoretypes/abc.py @@ -490,7 +490,7 @@ def compute_score(self, submission_result): else: public_subtasks.append({"idx": st_idx, "testcases": public_testcases}) - ranking_details.append("%g" % rounded_score) + ranking_details.append("%g" % st_score) return score, subtasks, public_score, public_subtasks, ranking_details diff --git a/cmsranking/static/UserDetail.js b/cmsranking/static/UserDetail.js index 84b476ae46..046cfcaad4 100644 --- a/cmsranking/static/UserDetail.js +++ b/cmsranking/static/UserDetail.js @@ -292,6 +292,7 @@ var UserDetail = new function () { } else { for (var i in self.submissions[task_id]) { var submission = self.submissions[task_id][i]; + var rounded_extra = submission["extra"].map(x => round_to_str(parseFloat(x), DataStore.tasks[task_id]['score_precision'])); time = submission["time"] - DataStore.contests[DataStore.tasks[task_id]["contest"]]["begin"]; time = format_time(time); res += " \ @@ -299,7 +300,7 @@ var UserDetail = new function () { " + time + " \ " + round_to_str(submission['score'], DataStore.tasks[task_id]['score_precision']) + " \ " + (submission["token"] ? 'Yes' : 'No') + " \ - " + (submission["extra"].length > 0 ? "" + submission["extra"].join("") + "" : "") + " \ + " + (submission["extra"].length > 0 ? "" + rounded_extra.join("") + "" : "") + " \ "; } }