trang chủ / đề bài / altthink

Lật đoạn để xen kẽ

Đề bài

Mô tả

Cho một xâu nhị phân s độ dài n.

Một dãy con xen kẽ của s là một dãy con (không nhất thiết liên tiếp, giữ nguyên thứ tự) trong đó không có hai phần tử liền nhau nào bằng nhau. Ví dụ, 0101, 101, 1010 là các dãy xen kẽ, còn 100 và 01011 thì không.

Bạn phải thực hiện đúng một thao tác: chọn một xâu con liên tiếp khác rỗng của s và lật toàn bộ các ký tự trong đó (mọi 0 thành 1 và mọi 1 thành 0).

Hãy tìm độ dài lớn nhất có thể của dãy con xen kẽ dài nhất của xâu sau khi thực hiện thao tác.

Dữ liệu vào

  • Dòng đầu tiên chứa số nguyên n.
  • Dòng thứ hai chứa xâu nhị phân s độ dài n.

Dữ liệu ra

In ra một số nguyên duy nhất là đáp án.

Ràng buộc

  • 1≤n≤105
  • s chỉ gồm các ký tự 0 và 1.

Ví dụ

Input Output Giải thích
8
10000011
5 Lật đoạn từ vị trí 4 đến vị trí 5, xâu trở thành 10011011, có dãy con xen kẽ độ dài 5 là 10101.
2
01
2 Lật cả xâu được 10, dãy con xen kẽ dài nhất vẫn có độ dài 2.

Bình luận

Không có bình luận tại thời điểm này.

gnatmake 12.2.0 a68g 3.1.2 nasm 2.16.1 as_x64 2.47 awk 1.3.4 gcc 16.2.0 dotnet 10.0.402 g++ 16.2.0 g++-themis 16.2.0 g++17 16.2.0 g++20 16.2.0 g++23 16.2.0 clang++ 22.1.8 dmd 2.113.0 dart 3.13.6 gforth 0.7.3 gfortran 15.3.0 go 1.27.3 groovyc 5.1.3 javac 26.0.2.1 node 26.12.1 julia 1.13.2 kotlinc 2.4.21 lean 4.35.0 sbcl 2.2.9 lua 5.5.1 nim 2.2.12 fpc 3.2.2 fpc-themis 3.2.2 perl 5.42.3 php 8.5.12 pike 8.0 swipl 9.0.4 pypy3 7.3.23 python3 3.15.1 racket 8.7 ruby 4.0.8 rustc 1.99.1 csc 5.3.0 ctoj-scratch 0.0.1 sed 4.9 swiftc 6.4.1 tclsh 8.6 bun 1.4.4 deno 2.9.8 v 0.5.2 zig 0.17.0