From 45acbc38cf4c2ea9c87b6317641dbcc03fc10b56 Mon Sep 17 00:00:00 2001 From: Matej Focko Date: Sat, 10 Aug 2024 22:40:07 +0200 Subject: [PATCH] =?UTF-8?q?cs:=20add=20=C2=AB2542.=20Maximum=20Subsequence?= =?UTF-8?q?=20Score=C2=BB?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: Matej Focko --- cs/maximum-subsequence-score.cs | 20 ++++++++++++++++++++ 1 file changed, 20 insertions(+) create mode 100644 cs/maximum-subsequence-score.cs diff --git a/cs/maximum-subsequence-score.cs b/cs/maximum-subsequence-score.cs new file mode 100644 index 0000000..d9f57f9 --- /dev/null +++ b/cs/maximum-subsequence-score.cs @@ -0,0 +1,20 @@ +using System.Collections.Generic; + +public class Solution { + public long MaxScore(int[] nums1, int[] nums2, int k) { + long prefixSum = 0, maxScore = 0; + + var heap = new PriorityQueue(); + foreach (var (num, mult) in nums1.Zip(nums2).OrderBy(key => key.Second).Reverse()) { + prefixSum += num; + heap.Enqueue(num, num); + + if (heap.Count == k) { + maxScore = Math.Max(maxScore, prefixSum * mult); + prefixSum -= heap.Dequeue(); + } + } + + return maxScore; + } +}