def unique_in_windows(arr, k):
if k <= 0 or k > len(arr):
return []
freq = {}
result = []
# первое окно
for i in range(k):
freq[arr[i]] = freq.get(arr[i], 0) + 1
result.append(len(freq))
# остальные окна
for i in range(k, len(arr)):
left = arr[i - k]
freq[left] -= 1
if freq[left] == 0:
del freq[left]
right = arr[i]
freq[right] = freq.get(right, 0) + 1
result.append(len(freq))
return result
# Пример использования
arr = [1, 2, 1, 3, 2, 3, 4]
k = 3
print(unique_in_windows(arr, k))