LoginSignup
1
1

More than 3 years have passed since last update.

はじめに

前回
今日はABC

#48

問題

考えたこと
前に見たことがあるような気がします。それぞれの要素ごとにcountしているとTLEします。ですので、sortして疑似count的なことをします。あとは、要素の数が少ない順に書き換えていくだけです。

n, k = map(int,input().split())
a = list(map(int,input().split()))

a.sort()
num = [0] * n
c = 0
t = 0
for i in range(n-1):
    if a[i] != a[i+1]:
        c += 1
        num[a[i]-1] += c
        t += 1
        c = 0
    else:
        c += 1

s = sum(num)
t += 1
num[a[i+1]-1] = n - s
num.sort()

ans = 0
for i in range(n):
    if num[i] == 0:
        continue
    if t <= k:
        print(ans)
        break
    ans += num[i]
    t -= 1

まとめ

すごく不調なので、ABCまでに回復できるようにします。早く茶色になりたい。ではまた。

1
1
2

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1