답안 #590337

# 제출 시각 아이디 문제 언어 결과 실행 시간 메모리
590337 2022-07-05T20:55:35 Z dnialh Rope (JOI17_rope) PyPy 3
0 / 100
44 ms 18656 KB
from collections import Counter

import sys as sus
input = sus.stdin.readline

n, m = map(int, input().split())

c = list(range(1, m + 1))
c = list(map(int, input().split()))

ct = Counter(c)
ctl = [0] * (m + 1)
for i in range(1, m + 1):
    ctl[i] = ct[i]
o = ct.most_common()

del ct

odd = Counter()
eve = Counter()

for i in range(n - 1):
    s = min(c[i], c[i + 1])
    b = max(c[i], c[i + 1])
    if i % 2:
        odd[(s << 20) |  b] += 1
    else:
        eve[(s << 20) |  b] += 1

for v in eve:
    odd[v] = min(odd[v], eve[v])
    
del eve

out = []


for i in range(1, m + 1):
    res = 0
    for v, vc in o:
        if v == i:
            continue

        bl = odd[(i << 20) | v] + odd[v << 20 | i]
        #br = eve[(i << 20) | v] + eve[v << 20 | i]

        bad = bl
        #bad = min(bl, br)

        res = max(res, vc - bad)

        if bad == 0:
            break
    out.append(n - res - ctl[i])
    
print('\n'.join(map(str, out)))
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 18656 KB Output is correct
2 Correct 44 ms 18572 KB Output is correct
3 Incorrect 41 ms 18624 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 18656 KB Output is correct
2 Correct 44 ms 18572 KB Output is correct
3 Incorrect 41 ms 18624 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 18656 KB Output is correct
2 Correct 44 ms 18572 KB Output is correct
3 Incorrect 41 ms 18624 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 18656 KB Output is correct
2 Correct 44 ms 18572 KB Output is correct
3 Incorrect 41 ms 18624 KB Output isn't correct
4 Halted 0 ms 0 KB -
# 결과 실행 시간 메모리 Grader output
1 Correct 40 ms 18656 KB Output is correct
2 Correct 44 ms 18572 KB Output is correct
3 Incorrect 41 ms 18624 KB Output isn't correct
4 Halted 0 ms 0 KB -