Dado um array A de N números e um array P inicialmente vazio, você pode executar 4 tipos de operações:
- Operação 1: Pegar o último número do vetor
A
, move-lo ao vetorP
. - Operação 2: Pegar os dois últimos números do vetor
A
(se o tamanho do vetor for maior que 1), e mover o produto deles ao vetorP
. - Operação 3: Inverter o vetor
A
, pegar o último número do vetorA
, move-lo para o vetorP
. - Operação 4: Inverter o vetor
A
, pegar os dois últimos números do vetorA
(se o tamanho do vetor for maior que 1), e mover o produto deles ao vetorP
.
Observe que após cada operação, o vetor A
se torna menor e talvez revertido. Realize as operações até que o vetor A
esteja vazio. É necessário maximar a soma de todos os valores no vetor P
.
Entrada: A primeira linha contém um único número inteiro N. A próxima linha contém N números inteiros separados por espaço, indicando o vetor A
.
Saída: Emitir a máxima soma de todos os elementos do vetor P
que podem ser obtidos executando as 4 operações listadas acima.
Considerar: 1 ≤ N ≤ 103; 1≤ Ai ≤ 106
Entrada:
5
1 4 2 3 5
Saída:
24
Pode-se obter a soma 24 através das operações nas ordens [2, 3, 2].
- Aplicando a Operação 2:
A = [1, 4, 2]
P = [15]
- Aplicando a Operação 3:
A = [2, 4]
P = [15, 1]
- Aplicando a Operação 2:.
A = []
P = [15, 1, 8]
- Somar todos os valores no vetor P:
P = [15, 1, 8] → 15 + 1 + 8 = 24
Atenção:
- Para executar os passos a seguir é necessário ter instalado e configurado em sua máquina Git e npm.
- Os passos serão executados em um terminal.
# Clone o repositório
$ git clone https://github.com/gustavosatheler/maximizing-the-sum.git
# Acesse a pasta do repositório
$ cd maximizing-the-sum
# Instale as dependências
$ npm install
$ npm run app