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

por

Solução por Lúcio Figueiredo

Conhecimento prévio necessário:

Perceba que não existem permutações bonitas para n = 2 e n = 3. Para n = 1, a permutação {1} é uma resposta válida.

Para todo n > 3″ /></span><script type='math/tex'>n > 3</script>, existe uma permutação válida com <span class='MathJax_Preview'><img data-recalc-dims= elementos. Para demonstrar isso, basta utilizar a seguinte construção:

  1. Inicialmente, inisira o valor 2 como primeiro elemento da permutação.
  2. Em seguida, insira todos os números pares maiores que 2 e menores ou iguais a n.
  3. Por fim, insira em seguida os números ímpares menores ou iguais a n.

É fácil ver que a construção acima gera uma permutação bonita, já que não há nenhum par de elementos consecutivos com diferença igual a 1.

Portanto, basta imprimir as três sequências indicadas acima utilizando um loop for. A complexidade final é O(n). Confira o código abaixo para melhor entendimento: