Mínimos dos máximos
Dado um array de números inteiros $A$ de tamanho $N$ e um inteiro $M$ ($1 \leq M \leq N$), sua tarefa é calcular os mínimos dos máximos em janelas de tamanho $M$.
O processo é definido em duas etapas:
-
Primeira etapa (máximos):
- Deslize uma janela de tamanho $M$ sobre o array original $A$.
- Para cada posição da janela, calcule o valor máximo dentro dela.
-
Segunda etapa (mínimos):
- Agora, deslize novamente uma janela de tamanho $M$, mas sobre o array $B$.
- Para cada posição dessa nova janela, calcule o valor mínimo dentro dela.
Exemplo: Seja $A = [2, 1, 4, 5, 3, 4]$ e $M = 2$.
-
Primeira etapa (máximos em janelas de tamanho 2):
$$ B = [\max(2,1), \max(1,4), \max(4,5), \max(5,3), \max(3,4)] = [2, 4, 5, 5, 4] $$
-
Segunda etapa (mínimos em janelas de tamanho 2 sobre $B$):
$$ C = [\min(2,4), \min(4,5), \min(5,5), \min(5,4)] = [2, 4, 5, 4] $$
Portanto, o resultado final é:
$$ C = [2, 4, 5, 4] $$
Input
Na primeira linha será dado dois inteiros $n$ e $m$ representando o tamanho do array. $(1 \le m \le n \le 10^5)$
Na segunda linha será fornecido $n$ inteiros representando o array $a_i$. $(1 \le a_i \le 10^9)$
Output
De como saida o tamanho o array final apos as operações.
6 2 2 1 4 5 3 4
2 4 5 4
10 2 5 4 2 1 4 5 1 3 5 7
4 2 2 4 5 3 3 5
4 1 10 6 5 2
10 6 5 2