Загрузка данных


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))