Xâu đẹp

Xem PDF

Điểm: 400 (p) Thời gian: 1.0s Bộ nhớ: 512M Input: bàn phím Output: màn hình

Xâu nhị phân là xâu chỉ chứa các ký tự 0 hoặc 1. Một xâu nhị phân được gọi là đẹp nếu với mỗi ký tự 1
trong xâu, số lượng ký tự 0 liên tiếp từ nó tới kí tự 1 gần nhất bên trái hoặc tới đầu xâu bằng số lượng
ký tự 0 liên tiếp từ nó tới ký tự 1 gần nhất bên phải hoặc tới cuối xâu. Tức là với mỗi số 1, số lượng ký
tự 0 liên tiếp ngay bên trái nó bằng số lượng ký tự 0 liên tiêp ngay bên phải nó. Ví dụ xâu 0001000 là
xâu đẹp, còn xâu 001010 là không đẹp vì bên trái ký tự 1 đầu tiên có hai ký tự 0 và bên phải nó chỉ có
một ký tự 0. Cho trước một xâu nhị phân bất kỳ, bạn được phép xóa một số ký tự trong đó để biến nó
thành xâu đẹp.

Yêu cầu: Hãy in ra độ dài của xâu đẹp dài nhất có thể sinh ra bằng cách xóa các ký tự của một xâu
cho trước.

Input

  • Dòng đầu tiên chứa số nguyên \(n\) là độ dài của xâu nhị phân (\(1 \le n \le 500 000\)). Dòng thứ 2 là một dãy
    \(n\) ký tự 0 hoặc 1. Đảm bảo dòng này chứa ít nhất một ký tự 1.

Output

  • Ghi ra một dòng chứa một số nguyên duy nhất là độ dài của xâu đẹp dài nhất có thể thu được.

Example

Test 1

Input
10
0100100000
Output
7

Test 2

Input
3
111
Output
3

Test 3

Input
7
0100101
Output
5

Bình luận