Submission #590330

#TimeUsernameProblemLanguageResultExecution timeMemory
590330dnialhRope (JOI17_rope)Pypy 3
80 / 100
1738 ms262144 KiB
from collections import Counter import sys as sus input = sus.stdin.readline n, m = map(int, input().split()) c = list(map(int, input().split())) ct = Counter(c) o = ct.most_common() 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 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[v << 20 | i] + eve[i << 20 | v] bad = min(bl, br) res = max(res, vc - bad) if bad == 0: break out.append(n - res - ct[i]) print('\n'.join(map(str, out)))
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...