From 1c541a4adff8cfb32be537e3f553b533c68461d0 Mon Sep 17 00:00:00 2001 From: Azalea <22280294+hykilpikonna@users.noreply.github.com> Date: Mon, 19 Feb 2024 00:39:43 -0500 Subject: [PATCH] [F] Fix rating calculation --- .../aqua/api/controller/sega/game/maimai2/Maimai2New.kt | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt index 6f5f59de..a3ff91db 100644 --- a/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt +++ b/src/main/java/icu/samnyan/aqua/api/controller/sega/game/maimai2/Maimai2New.kt @@ -30,9 +30,13 @@ class Maimai2New( // Precompute the play counts for each date in O(n) val playCounts = d.groupingBy { it.playDate }.eachCount() + // Find the max afterRating on each date + val maxRating = d.groupingBy { it.playDate }.fold(0) { acc, e -> maxOf(acc, e.afterRating) } + // Use the precomputed play counts return d.distinctBy { it.playDate } - .map { TrendOut(it.playDate, it.afterRating, playCounts[it.playDate] ?: 0) } + .map { TrendOut(it.playDate, maxRating[it.playDate] ?: 0, + playCounts[it.playDate] ?: 0) } .sortedBy { it.date } }