Brincando de consultas
Dabriel está brincando com seu array e por ser muito metódico pensou que sempre deveria saber qual a quantidade mínima de elementos que devem ser alterados para que um determinado subarray possua um valor $$W$$. Em outras palavras, ele deseja poder realizar duas operações no seu array, são elas:
1 – Alterar o valor do elemento da posição X para o valor W;
2 – Informar qual a quantidade mínima de elementos que precisam ser alterados do intervalo [X, Y] para que todos os elementos possuam o valor W.
Entrada
A primeira linha contém dois inteiros N e Q ($$1 \leq N, Q \leq 10^5$$), que representa quantos elementos possui o array e quantas consultas Dabriel irá realizar. A segunda linha contém $$N$$ inteiros $$X_i$$ ($$1 \leq X_i \leq 10^5$$) que indica o valor da $$i$$-ésima posição do array inicial. Nas próximas $$Q$$ linhas irão conter as consultas, podendo ser: $$1 \; X \; W$$ (1 ≤ X ≤ N, 1 ≤ W ≤ 105), indicando a operação de alteração e $$2 \; X \; Y \; W$$ (1 ≤ X ≤ Y ≤ N, 1 ≤ W ≤ 105), indicando a operação de consulta.
Saída
Para cada operação do tipo 2, informe a quantidade de elementos que precisam ser alterados
Exemplos
ENTRADA |
SAÍDA |
| 4 4 1 2 3 4 2 1 2 2 2 1 2 3 1 2 1 2 1 2 2 |
1 2 2 |
Enviar solução: URI
