操作
题目描述
现有一包含 \(n\) 个数的序列 \(A_1,A_2,A_3,...,A_n\),给定一个定值 \(k\)。
每次我们可以选择数列中一个下标为 \(2\) 的次幂的元素(如 \(A_1,A_2,A_4,A_8...\))将其删除出数列(删除后,其后的元素会自动前移一格)。
问最少进行多少次操作,能将序列中所有为 \(k\) 的元素删除?
格式
输入格式
第一行两个整数 \(n,k\);
第二行 \(n\) 个整数,\(A_1,A_2,...,A_n\)
输出格式
第一行一个整数,为最少操作次数。
样例1
输入样例1
5 2 1 2 2 2 2
输出样例1
4
样例解释
连续删除 \(4\) 次 \(A_2\),即可。
限制
对于 \(20\%\) 的数据,\(n<=10\)
对于 \(50\%\) 的数据,\(n<=10000\)
对于 \(100\%\) 的数据,\(n<=300000\)