Solução Informática – Nível Iniciante – Semana 41

por

Solução escrita por João Pedro Castro

Conhecimento prévio necessário:

Primeiramente, vamos ver em que casos não existe uma resposta válida. Para chegar à um MEX de $$k$$ teremos que ter todos os $$k$$ números de $$0$$ até $$k – 1$$, e para isso ser realizado tanto $$n \geq k$$ (para termos espaço), quanto $$x \geq k – 1$$ (para que o limite não impeça que os coloquemos), se alguma dessas condições forem falsas podemos imprimir $$-1$$.  Agora, depois de adicionar todos os números de $$0$$ até $$k – 1$$, de soma total: $$\frac{(k – 1)(k – 1 + 1)}{2} = \frac{k(k – 1)}{2}$$ (usando a Soma de Gauss), temos $$n – k$$ espaços restantes no array, e como só queremos a maior soma possível faz sentido colocar $$x$$ em todos os espaços restantes, já que ele é o maior número permitido; o único caso em que isso não pode ocorrer é quando $$k = x$$, e como $$k$$ não pode aparecer no array temos que colocar $$k – 1$$ (ou seja, tratar $$x := x – 1$$). Logo, a resposta final é $$\frac{k(k – 1)}{2} + x(n-k)$$. Tendo uma complexidade por teste de $$O(1)$$, logo uma complexidade total de $$O(t)$$, que passa tranquilamente.

Clique aqui para conferir o código