Bit Inversions.


Submit solution

Points: 100 (partial)
Time limit: 2.0s
Memory limit: 512M

Author:
Problem types
Allowed languages
Ada, Assembly, Awk, Brain****, C, C#, C++, COBOL, D, Dart, F#, Forth, Fortran, Go, Groovy, Haskell, Java, JS, Kotlin, Lisp, Lua, ObjC, OCaml, Pascal, Perl, PHP, Pike, Prolog, Python, Racket, Ruby, Rust, Scala, Scheme, Sed, Swift, TCL, Text, Turing, VB, Zig

Se dispone de una cadena de bits compuesta por n bits. Posteriormente, se realizan cambios que invierten un bit dado. Su tarea consiste en informar, después de cada cambio, la longitud de la subcadena más larga cuyos bits permanecen iguales.

Entrada

  • La primera línea de entrada contiene una cadena de bits compuesta por n bits. Los bits están numerados del 1,2,\ldots,n.
  • La siguiente línea contiene un entero m: el número de cambios.
  • La última línea contiene m enteros x_1,x_2,...,x_m que describen los cambios.

Salida

Después de cada cambio, imprima la longitud de la subcadena más larga cuyos bits permanecen iguales.

Restricciones

  • 1 \leq n \leq 2 \cdot 10^5
  • 1 \leq m \leq 2 \cdot 10^5
  • 1 \leq x_i \leq n

Ejemplo de Entrada

001011
3
3 2 5

Ejemplo de Salida

4 2 3

Explicación: La cadena de bits se convierte primero en 000011, luego en 010011 y finalmente en 010001.


Comments

There are no comments at the moment.