题目描述
对于 01 序列 {an},找到最小的 k 满足存在一组 {(lk,rk)}使得以下条件成立。
- ∀i∈[1,n],ai=1 当且仅当 ∃j∈[1,k],i∈[lj,rj]。
可以证明满足条件的 {(lk,rk)} 仅有一个。
一个 01 序列 {an} 是好的当且仅当 ∀i∈[1,k),ri−li<ri+1−li+1。
简单来说,一个 01 序列是好的当且仅当从左到右形成的极长 1 段长度严格递增。
给定序列 {an},你可以进行如下操作若干次(或不进行操作):
- 选择 i,j(i=j),交换 ai,aj。
试求最小的操作次数使得 {an} 变成一个好的序列。
输入格式
一行一个长为 n(n≤800) 的 01 序列 {an}。
输出格式
一行一个数字,表示答案。
01101
1
01011
0