XXVI Olimpíada Brasileira de Informática
Submeta sua solução

Nome do arquivo: taxa.x, onde x deve ser c, cpp, java, js ou py

Taxa

Uma empresa está construindo um condomínio de casas ao redor de um lago. As casas serão construídas em lotes de terra de diferentes tamanhos, mas todos os lotes serão às margens do lago. Além disso, cada lote de terra terá exatamente dois vizinhos no condomínio, um vizinho à direita e um vizinho à esquerda.

A empresa é dona de todo o terreno do condomínio e necessita dividir o terreno em lotes, de acordo com o projeto do condomínio. No entanto, a Prefeitura tem uma lei curiosa de imposto sobre divisão de terra, criada para inibir a criação de lotes de terra muito pequenos:

  1. um terreno pode ser dividido apenas usando uma sequência de divisões de terreno;
  2. uma divisão de terreno é uma operação que divide um terreno em duas partes; e
  3. para cada divisão de terreno deve ser pago um imposto.
Chamando de A a área da maior parte de terreno resultante da divisão, o valor do imposto sobre a divisão de terra é A x F, onde F é o fator de divisão, definido anualmente pela Prefeitura. Note que devido a (2), para dividir um terreno em N lotes, são necessárias N-1 divisões de terra, e portanto N-1 pagamentos devem ser feitos à Prefeitura.

Por exemplo, considerando a figura acima, se o fator de divisão é 2.5 e a primeira divisão de terreno separa o lote com 500 unidades de área dos outros lotes, o imposto a ser pago nesta primeira divisão é 2.5 x (300+200+100+100+100). Se a próxima divisão de terreno separa dos lotes restantes o lote de 300 unidades junto com seu lote vizinho de 100 unidades, um imposto adicional de 2.5 x (300+100) deve ser pago; e assim por diante. Note também que algumas divisões de terra não são possíveis, devido a (2). Por exemplo, após a primeira divisão de terreno mencionada anteriormente não é possível fazer uma divisão para separar a área formada pelo lote de 300 unidades e o lote de 200 unidades da área formada pelos três lotes restantes, porque mais do que duas partes resultariam dessa operação.

Dadas as áreas de todos os lotes ao redor do lago e o valor corrente do fator de divisão, escreva um programa para determinar o menor valor de imposto total que deve ser pago para dividir a terra de acordo com o projeto de condomínio.

Entrada

A primeira linha contém um número inteiro N e um número real F, indicando respectivamente o número de lotes no condomínio e o fator de divisão (com precisão de dois dígitos). A segunda linha contém N números inteiros Xi, representando as áreas de lotes vizinhos no projeto do condomínio, para 1 ≤ i ≤ N, sendo que Xk é vizinho de Xk+1 para 1 ≤ k ≤ N-1, e XN é vizinho de X1.

Saída

Seu programa deve produzir uma única linha na saída, contendo o valor mínimo do imposto a ser pago, como um número real com precisão de dois dígitos decimais.

Restrições

  • 1 ≤ N ≤ 200
  • 0 ≤ F ≤ 5.00
  • 0 < Xi ≤ 500, para 1 ≤ i ≤ N

Informações sobre a pontuação

  • Em um conjunto de casos de teste somando 20 pontos, N ≤ 8

Exemplos

Entrada
4 1.50
2 1 4 1
Saída
13.50
	

 

Entrada
6 2.50
300 100 500 100 100 200
Saída
4500.00
	

 

Tarefas Programação Nível 2
Promoção:
sbc
Patrocínio
 
Apoio
 
Coordenação