LCS Revised
64-bit integer IO format: %I64d Java class name: (Any)
The longest common subsequence is a well known DP problem: given two strings A and B, one has to compute the maximum length of a subsequence that's common to both A and B.
In this particular problem we work with strings A and B formed only by 0 and 1, having the same length. You're given a string A of length n. Iterate all strings B possible. There are 2n of them. Calculate, for each string B, the longest common subsequence of A and B. Then, output the minimum length obtained.
Input
The first and the only line of the input contains string A, formed only by 0 and 1. It's guaranteed that the length is between 1 and 105.
Output
Output a single number - the requested length.
Sample Input
101010
3
Source
![](https://i-blog.csdnimg.cn/blog_migrate/8f900a89c6347c561fdf2122f13be562.gif)
![](https://i-blog.csdnimg.cn/blog_migrate/961ddebeb323a10fe0623af514929fc1.gif)
1 #include <bits/stdc++.h> 2 using namespace std; 3 const int maxn = 100010; 4 char str[maxn]; 5 int main() { 6 while(~scanf("%s",str)) { 7 int one = 0,zero = 0; 8 for(int i = 0; str[i]; ++i) 9 if(str[i] == '0') zero++; 10 else one++; 11 printf("%d\n",min(zero,one)); 12 } 13 return 0; 14 }