Fix minimizer

This commit is contained in:
Merlijn 2025-08-28 16:28:52 +02:00
parent fb5250d501
commit c0125afce5
Signed by: ToxicMushroom
SSH key fingerprint: SHA256:fiv+rEfOFbxc5OPNgLT1nNCL/JndxzhkKbIJLp1JcCc

View file

@ -37,8 +37,9 @@ fun main() {
// Minimize transactions:
for ((user, transactions) in payments.iterator()) {
for ((target, pay) in transactions.iterator()) {
val payback = payments[target]?.firstNotNullOf { (other, euros) ->
assert(user == other)
val payback = payments[target]
?.filter { (other, _) -> other == user }
?.firstNotNullOfOrNull { (_, euros) ->
euros
} ?: continue
val common = min(pay, payback)
@ -51,6 +52,7 @@ fun main() {
payments[target] = payments[target]!!.also {
it[user] = newPayback
}
println("Minimized $user -> $target for $common")
}
}