Problem1896--普及组模拟赛二D翻转硬币

1896: 普及组模拟赛二D翻转硬币

[Creator : ]
Time Limit : 1.000 sec  Memory Limit : 128 MB

Submit

Description

    KK 去参加 Google 面试了。面试官给了 KK 一共 n 个硬币,并把他们排成一列。
    现在面试官给了一个整数 m,他要求 KK 通过以下两种操作,使得硬币组成的数列前 n−m 位和后 n−m 位匹配。
具体的说,设硬币组成的数列为 a1, a2, · · · , an,面试官要求 a1 = am+1, a2 = am+2, · · · , an−m =an。
KK 所选择的操作,必须是下面两种中的其中一种:
    • 选择其中一个硬币,并且翻转它。
    • 选择前 k · m 位(k 为任意正整数),并且翻转它们。
为了博取面试官的好感,KK 自然想用最少的翻转次数来完成面试官的要求。

Input

第一行输入一个仅包含 0/1 的字符串,字符串的长度为 n。
第二行输入一个整数 m,含义如题目所述。

Output

输出包含一个整数,表示所需要的最小翻转次数。

Sample Input Copy

样例输入1:
00111000
1
样例输入2:
101100001101
3

Sample Output Copy

样例输出1:2

样例输出2:2

HINT

样例解释


第一个样例的两个操作分别是:
1)执行操作 2 并且令 k = 5,操作后变成 11000000。
2)执行操作 2 并且令 k = 2,操作后变成 00000000。




约束


• 1 ⩽ m ⩽ n ⩽ 300.


子任务


                                             

Source/Category