CSES - Bit Inversions | Nghịch đảo bit

Xem PDF



Tác giả:
Dạng bài
Ngôn ngữ cho phép
Assembly, Awk, C, C#, C++, Clang, Cobol, D, Groovy, Haskell, JS, Java, Kotlin, Lua, Node JS, OCaml, ObjectiveC, Output, PHP, Pascal, Perl, Prolog, Pypy, Pypy 3, Python, Ruby, Rust, Scala, Scratch, Swift
Điểm: 1600 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Có một xâu nhị phân gồm \(n\) bit. Sau đó, có một số truy vấn đảo ngược một bit bất kì. Sau mỗi thay đổi, bạn cần phải thông báo độ dài của xâu con dài nhất có các bit giống nhau.

Input

  • Dòng đầu tiên chứa một xâu nhị phân gồm \(n\) bit. Các bit được đánh số \(1,2,\dots,n\)
  • Dòng tiếp theo chứa số nguyên \(m\): số lượng thay đổi
  • Dòng cuối cùng chứa \(m\) số nguyên \(x_1, x_2, \dots, x_m\) mô tả các thay đổi

Constraints

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

Output

  • Sau mỗi thay đổi, in ra độ dài của xâu con dài nhất có các bit của nó giống nhau

Example

Test 1

Input
001011
3
3 2 5
Output
4 2 3
Note

Xâu nhị phân trước hết trở thành 000011, sau đó là 010011, và cuối cùng là 010001

Bình luận (1)

Mới nhất
Tải bình luận...