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

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

Sequência

O professor da importante disciplina de Indução Matemática está tentando resolver uma versão generalizada de um problema muito tradicional: encontrar o valor máximo possível para a soma dos elementos de uma subsequência contígua de uma sequência de números inteiros quaisquer. Mais rigorosamente, dado uma sequência S=[s1,s2,...,sN], onde si é um número inteiro qualquer, para 1 ≤ i ≤ N, maximizar soma(i,j)=si+si+1+...+sj entre todos os possíveis pares (i,j), onde 1 ≤ i ≤ j ≤ N.

Na versão do professor, entretanto, alguns elementos da sequência são especiais e estão marcados. Além da sequência marcada, são dadas como entrada duas cotas: L e H, com L ≤ H. O objetivo agora é encontrar o valor máximo possível para a soma dos elementos de uma subsequência contígua, que contenha pelo menos L e no máximo H elementos marcados.

Por definição, uma subsequência vazia (de zero elementos) tem soma igual a zero. Mas note que, como podemos ter uma cota inferior para o número de elementos marcados, a subsequência contígua de soma máxima pode ter soma negativa!

Entrada

A primeira linha da entrada contém três inteiros N, L e H, indicando respectivamente o número de elementos na sequência, a cota inferior L e a cota superior H. A segunda linha contém N inteiros si, para 1 ≤ i ≤ N, definindo os elementos da sequência. A terceira linha contém N inteiros mi, para 1 ≤ i ≤ N, indicando as marcas. Se o i-ésimo elemento está marcado, o valor é mi=1. Se não estiver marcado, mi=0.

Saída

Imprima uma única linha contendo um inteiro, representando o valor máximo possível para a soma dos elementos de uma subsequência contígua, que contenha pelo menos L e no máximo H elementos marcados.

Restrições

  • 1 ≤ N ≤ 105
  • 0 ≤ L ≤ H ≤ 20
  • -103 ≤ si ≤ 103, para 1 ≤ i ≤ N
  • O número de elementos marcados na sequência é maior ou igual a L; portanto sempre existe solução.

Informações sobre a pontuação

  • Para um conjunto de casos de testes valendo 15 pontos, N ≤ 102
  • Para um conjunto de casos de testes valendo 30 pontos, N ≤ 104

Exemplos

Entrada
14 3 4
9 0 -23 -12 7 1 -13 2 -1 9 -16 -1 14 12
1 0 0 1 0 1 0 0 1 1 0 0 1 1
Saída
19
	

 

Entrada
14 7 20
9 0 -23 -12 7 1 -13 2 -1 9 -16 -1 14 12
1 0 0 1 0 1 0 0 1 1 0 0 1 1
Saída
-12
	

 

Entrada
14 5 5
9 0 -23 -12 7 1 -13 2 -1 9 -16 -1 14 12
1 0 0 1 0 1 0 0 1 1 0 0 1 1
Saída
14
	

 

Entrada
14 0 20
9 0 -23 -12 7 1 -13 2 -1 9 -16 -1 14 12
1 0 0 1 0 1 0 0 1 1 0 0 1 1
Saída
26
	

 

Promoção:
sbc
Patrocínio
 
Apoio
 
Coordenação