Binary String

Xem dạng PDF

Gửi bài giải

Điểm: 10,00 (OI)
Giới hạn thời gian: 1.0s
Giới hạn bộ nhớ: 256M
Input: stdin
Output: stdout

Dạng bài
Ngôn ngữ cho phép
C, C++, Java, Kotlin, Pascal, PyPy, Python, Scratch

Một xâu nhị phân ~S~. Ta có thể thao tác trên xâu này bằng cách:

  • Chọn 1 số ~p~ bất kì ~(1 \le n)~
  • Chặt xâu ~S~ đang xét ra thành 2 xâu con ~S_x[1 ... p]~, ~S_y[p + 1 ... n]~
  • Lặp lại các thao tác trên các xâu con được tạo ra

Chú ý: ~n~ là độ dài của xâu ~S~ hiện tại

Một xâu nhị phân được định nghĩa là Hoàn Hảo khi và chỉ khi tất cả các số 0 đến đứng sau số 1

Yêu Cầu: Hãy đếm số lần biến đổi nhỏ nhất để biến đổi xâu ~S~ thành một xâu Hoàn Hảo.

INPUT

  • Gồm một dòng là xâu ~S~ ~(|S| \le 10^7)~

OUTPUT

  • Gồm một số nguyên dương là yêu cầu của bài toán

SUBTASKS

  • Subtask 1 (20%): ~|S| \le 100~
  • Subtask 2 (80%): ~|S| \le 10^7~

SAMPLE

Input

1000111011

Output

3

Explanation

Ta chọn các số x lần lượt là:

x = 7: 1000111|011

x = 4: 1000|111|011

x = 1: 1|000|111|011

-> Sắp xếp lại: 000|011|111|1

-> Thỏa mãn yêu cầu đề bài

Bình luận

Hãy đọc nội quy trước khi bình luận.



  • 1
    cocomelon  đã bình luận lúc 16, Tháng 11, 2024, 13:55

    ngu qhd mà admin cứ ra qhd là sao @@


    • -2
      abcnickname  đã bình luận lúc 18, Tháng 11, 2024, 1:21

      skibidi


    • -1
      luuquyhiep2010  đã bình luận lúc 16, Tháng 11, 2024, 16:06

      ke anh


      • 2
        cocomelon  đã bình luận lúc 17, Tháng 11, 2024, 1:12

        ừ e