Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- // Author : Saurav Kalsoor
- // Minimize Unique Numbers - KOTLIN
- import java.util.*
- var sc = Scanner(System.`in`)
- fun main() {
- val n: Int = sc.nextInt()
- val k: Int = sc.nextInt()
- val arr = ArrayList<Int>()
- for (i in 0 until n) {
- arr.add(sc.nextInt())
- }
- println(minimizeUnique(arr, k))
- }
- fun minimizeUnique(arr: ArrayList<Int>, k: Int): Int {
- var k = k
- val count = HashMap<Int, Int>()
- for (num in arr) {
- count[num] = count.getOrDefault(num, 0) + 1
- }
- val st: MutableSet<MyPair> =
- TreeSet { a, b ->
- if (a.second == b.second)
- a.first - b.first
- else a.second - b.second
- }
- for ((key, value) in count) {
- st.add(MyPair(key, value))
- }
- var res = st.size
- for (x in st) {
- k -= if (k >= x.second) {
- res--
- x.second
- } else {
- break
- }
- }
- return res
- }
- internal class MyPair(var first: Int, var second: Int)
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement