[Buổi 13][Tham lam][RDD] Bài 24: Tổng lớn nhất


LÀM BÀI

Points: 100
Time limit: 2.0s
Memory limit: 64M

Author:
Problem type

Tổng lớn nhất

Trong một buổi học, giáo sư đã đưa ra một bài toán thú vị cho FullHouse Dev. Họ được yêu cầu chọn một số phần tử từ một mảng sao cho số lượng phần tử khác nhau không vượt quá một giới hạn cho trước, đồng thời tổng các phần tử được chọn phải lớn nhất có thể.

Bài toán

Cho một mảng số nguyên. Bạn cần chọn một số phần tử từ mảng với điều kiện số lượng phần tử khác nhau được chọn không được vượt quá \(k\). Nhiệm vụ của bạn là tối đa hóa tổng các số được chọn.

INPUT FORMAT:
  • Dòng đầu tiên chứa số nguyên \(T\) - số lượng test case.
  • Dòng đầu tiên của mỗi test case chứa hai số nguyên \(n\) và \(k\) - độ dài của mảng và số lượng phần tử khác nhau tối đa được phép chọn.
  • Dòng thứ hai của mỗi test case chứa \(n\) số nguyên - các phần tử của mảng \(A\).
OUTPUT FORMAT:
  • Với mỗi test case, in ra tổng lớn nhất có thể đạt được khi chọn các phần tử sao cho số lượng phần tử khác nhau không vượt quá \(k\). Nếu không thể chọn phần tử nào, in ra \(0\).
Ràng buộc:
  • \(1 \leq T \leq 10^5\)
  • \(1 \leq n, k \leq 10^5\)
Ví dụ
INPUT
2
4 1
3 -1 2 5
4 2
2 1 2 5
OUTPUT
5
9
Giải thích
  • Ở test case đầu tiên, \(n = 4\), \(k = 1\). Do chỉ được phép chọn tối đa 1 số khác nhau, FullHouse Dev chọn số \(5\). Tổng đạt được là \(5\).

  • Ở test case thứ hai, \(n = 4\), \(k = 2\). Được phép chọn tối đa 2 số khác nhau, FullHouse Dev chọn số \(2\) hai lần và số \(5\) một lần. Lưu ý rằng điều kiện chỉ giới hạn số lượng phần tử khác nhau, nên có thể chọn cùng một số nhiều lần. Tổng đạt được là \(2 + 2 + 5 = 9\).


Comments

There are no comments at the moment.

Zalo