Se te da un arreglo binario de longitud y un arreglo de longitud .
Puedes realizar la siguiente operación como máximo una vez.
Elige un índice . Si s_i=0, entonces la operación solo está permitida si
Si s_i=1, la operación siempre está permitida.
Después de elegir :
Establece s_i=1.
Sea el mayor índice tal que
Si existe tal índice, establece s_l=1.
Sea el menor índice tal que
Si existe tal índice, establece s_r=1.
Los índices y se determinan usando el arreglo antes de la operación.
Encuentra la máxima longitud posible de un segmento contiguo que consista solo de unos después de realizar la operación como máximo una vez.
La primera línea contiene dos enteros y (1 \le n \le 2 \cdot 10^5, 0 \le k \le 10^{9}).
La segunda línea contiene enteros s_1,s_2,\ldots,s_n (s_i \in \{0,1\}).
La tercera línea contiene enteros c_1,c_2,\ldots,c_n (0 \le c_i \le 10^9).
Imprime un entero — la máxima longitud posible de un segmento contiguo que consista solo de unos después de realizar la operación como máximo una vez.
Ejemplo 1
En el ejemplo, elige i=5.
Como s_5=0 y c_5=3\le k, esta operación está permitida.
Los índices correspondientes a la izquierda y a la derecha son y , ya que
y
Después de la operación,
Por lo tanto, la respuesta es .
Subtarea ( puntos): n \le 30.
Subtarea ( puntos): n \le 5000.
Subtarea ( puntos): Sin restricciones adicionales.