Problema C - Rua das Flores

Este é problema usa o novo formato de problemas.
Consulta a página de instruções para informações detalhadas sobre como funciona este novo formato.

A Rua das Flores é uma rua muito longa (tem N metros de comprimento!) e que há muito tempo está em terríveis condições. No entanto, e felizmente para os condutores que percorrem essa rua frequentemente, o presidente da freguesia prometeu fazer obras nessa rua para ela deixar de ser um problema no quotidiano dos seus transeuntes.

A rua pode ser vista como uma sequência S de N inteiros positivos, onde o i-ésimo, Si, corresponde ao custo de arranjar o i-ésimo metro da rua. Fazer obras em toda a rua pode exceder o orçamento da junta de freguesia, por isso estão a ser estudadas 3 opções distintas para a obra.

Parte I

Uma das formas de cumprir o plano eleitoral é fazer obras de recuperação num segmento contíguo de S de comprimento exatamente K metros. Recordem que um segmento contíguo é um intervalo de elementos seguidos, por exemplo para a sequência [1, 2, 2, 3] a subsequência [1, 2, 2] é uma subsequência contígua (que contém os primeiros três elementos) mas [1, 2, 3] já não (contém o primeiro, segundo e quarto elementos). Entre todos os segmentos contíguos com K metros de comprimento, pretende-se descobrir aquele que tem o custo total mínimo de recuperação.

Exemplo

Vamos supor que N = 5 e S = [1, 6, 2, 2, 3], ou seja, o custo de arranjo do primeiro metro da rua é 1, do segundo é 6, etc.

Para este caso, se K = 1, então podemos reparar apenas o primeiro metro da rua (que tem custo 1), o que tem um custo total de 1.

Se K = 2, então podemos reparar o segmento composto pelo terceiro (2) e quarto (2) metros, o que tem um custo total de 4.

Se K = 3, então podemos reparar o segmento composto pelo terceiro (2), quarto (2) e quinto (3) metros, o que tem um custo total de 7.

Restrições:

São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:

1 ≤ N ≤ 105 Comprimento da rua
1 ≤ K ≤ N Número de segmentos a considerar
1 ≤ Si ≤ 109 Custo de um metro de rua

Nota que a resposta pode ir até 2^62.

Os casos de teste desta parte do problema estão organizados num grupo com restrições adicionais diferentes:

Grupo Número de Pontos Restrições adicionais
1 25
-

Parte II

A segunda alternativa considerada é de recuperar o segmento contíguo que, entre todos os segmentos contíguos, tem o K-ésimo menor custo. Como tal, pretende-se descobrir o custo de realizar uma obra segundo esse critério.

Exemplo

Vamos supor que N = 5 e S = [1, 6, 2, 2, 3]. Então, se ordenarmos as possíveis subsequências contíguas pela sua soma obtemos o seguinte:

Assim, se K = 1, então a resposta seria 1. Se K = 2, então a resposta seria 2. Para K = 3, seria 2 novamente. Para K = 4, seria 3. K = 5, seria 4 e para K = 6 seria 5.

Restrições:

São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:

1 ≤ N ≤ 105 Comprimento da rua
1 ≤ K ≤ N (N + 1) / 2 Soma objetivo
1 ≤ Si ≤ 109 Custo de um metro de rua

Nota que N (N + 1) / 2 corresponde ao número total de subsequências contíguas.

Nota que a resposta pode ir até 2^62.

Os casos de teste desta parte do problema estão organizados em 2 grupos com restrições adicionais diferentes:

Grupo Número de Pontos Restrições adicionais
2 25 N ≤ 1 000
3 25
-

Parte III

A última alternativa correspondia a recuperar o segmento contíguo que, entre todos os segmentos contíguos, apresenta o K-ésimo menor custo por metro (arredondado para baixo, às unidades). Assim sendo, pretende-se descobrir esse mesmo custo por metro (na mesma arredondado para baixo, às unidades).

Exemplo

Vamos supor que N = 5 e S = [1, 6, 2, 2, 3]. Então, se ordenarmos as possíveis subsequências contíguas pelo seu custo por metro (arredondado para baixo) obtemos o seguinte:

Assim, se K = 1, então a resposta seria 1. Já se K estiver entre 2 e 8, então a resposta seria 2. Para K = 9, a resposta seria 3, ...

Restrições:

São garantidos os seguintes limites em todos os casos de teste desta parte que irão ser colocados ao programa:

1 ≤ N ≤ 105 Comprimento da rua
1 ≤ K ≤ N (N + 1) / 2 Custo por metro objetivo
1 ≤ Si ≤ 109 Custo de um metro de rua

Nota que N (N + 1) / 2 corresponde ao número total de subsequência contíguas.

Nota que a resposta pode ir até 2^62.

Os casos de teste desta parte do problema estão organizados num grupo com restrições adicionais diferentes:

Grupo Número de Pontos Restrições adicionais
4 25
-

Sumário de subtarefas

Os casos de teste desta do problema estão organizados em 4 grupos com restrições adicionais diferentes:

Grupo Número de Pontos Parte Restrições adicionais
1 25 Parte I
-
2 25 Parte II N ≤ 1 000
3 25 Parte II
-
4 25 Parte III
-

Input

Nota: O formato de input é igual para todas as partes.

A primeira linha contém um inteiro P, que representa a parte que o caso de teste representa. Se for 1, então o caso de teste refere-se à Parte I, se for 2 então refere-se à Parte II, se for 3 então refere-se à Parte III.

Segue-se uma linha com os inteiros N e K, separados por espaços.

Segue-se uma linha com N inteiros, separados por espaços, onde o i-ésimo representa o valor de Si.

Output

O output deve conter apenas uma linha, contendo um inteiro que representa:

Input do Exemplo 1

1
5 1
1 6 2 2 3

Output do Exemplo 1

1

Input do Exemplo 2

1
5 3
1 6 2 2 3

Output do Exemplo 2

7

Input do Exemplo 3

2
5 5
1 6 2 2 3

Output do Exemplo 3

4

Input do Exemplo 4

3
5 9
1 6 2 2 3

Output do Exemplo 4

3

Qualificação para a final das ONI'2020
(23/04 a 25/04 de 2020)