import
java.util.Arrays;
public
class
HelloWorld {
public
static
String flipString(String str,
int
n) {
char
[] temp1 =
new
char
[str.length()];
for
(
int
i =
0
; i < n; i++) {
if
(str.charAt(i) ==
'0'
) {
temp1[i] =
'1'
;
}
else
{
temp1[i] =
'0'
;
}
}
String temp2 =
new
String(temp1);
return
temp2;
}
public
static
int
minimumFlips(String str) {
if
(str.contains(
"0"
) ==
true
) {
return
0
;
}
if
(str.equals(
"00"
) || str.equals(
"000"
)) {
return
1
;
}
int
flips = Integer.MAX_VALUE;
if
(str.charAt(
0
) ==
'0'
) {
if
(str.length() >
2
) {
flips = Math.min(flips,
1
+ minimumFlips(flipString(str,
2
).substring(
1
)));
}
if
(str.length() >
3
) {
flips = Math.min(flips,
1
+ minimumFlips(flipString(str,
3
).substring(
1
)));
}
}
else
{
flips = Math.min(flips, minimumFlips(str.substring(
1
)));
if
(str.charAt(
1
) ==
'0'
) {
flips = Math.min(flips,
1
+ minimumFlips(flipString(str.substring(
1
),
2
)));
}
if
(str.charAt(
2
) ==
'0'
) {
flips = Math.min(flips,
1
+ minimumFlips(flipString(str.substring(
1
),
3
)));
}
}
return
flips;
}
public
static
void
main(String[] args) {
System.out.println(minimumFlips(
"0010"
) +
2
);
}
}