mul
该比赛已结束,您无法在比赛模式下递交该题目。您可以点击“在题库中打开”以普通模式查看和递交本题。
题目描述
我们现在想用加法,减法和左移来模拟乘法。具体的,给一个算式 ,想把它替换成 $(x \ll a_0) \ \text{op}_1 \ (x \ll a_1) \ \text{op}_2 \ \ldots \ \text{op}_n \ (x \ll a_n)$。其中 必须是加法或者减法。
对于所有的左移(包括左移 0 位),加法、减法都需要花费一单位时间计算。给定 的二进制表示,问最少需要多少的时间可以计算。
输入格式
一行输入 01 串,表示 的二进制表示,左边为高位。
输出格式
输出一个整数,表示答案。
输入输出样例 #1
输入 #1
1111
输出 #1
3
说明/提示
样例解释 1
所以一共需要 3 的时间(两次左移和一次减法)。
数据规模
共 10 个测试点。
- 测试点 1,2 满足 。
- 测试点 3,4,5 满足 。
- 对于所有数据,满足 ,并且最高位不为 0。