时间限制:1秒
空间限制:32768K
有一个长度为N的序列。一开始,这个序列是1, 2, 3,... n - 1, n的一个排列。
对这个序列,可以进行如下的操作:
每次选择序列中k个连续的数字,然后用这k个数字中最小的数字替换这k个数字中的每个数字。
我们希望进行了若干次操作后,序列中的每个数字都相等。请你找出需要操作的最少次数。
输入描述:
第一行:两个数字n, k,含义如题,满足2 <= k <= n <= 105;
第二行:n个数字,是1, 2, 3,...n的一个排列。
输出描述:
一个整数,表示最少的次数。
输入例子1:
2 2 2 1
输出例子1:
1
输入例子2:
4 3 1 2 3 4
输出例子2:
2
int main()
{
int n,k,i,m,cou=0,num=1;
scanf("%d%d",&n,&k);
for(i=0;i<n;i++)
{
scanf("%d",&m);
cou++;
if(cou%k==0 && i<n-1)
{
cou=1;
num++;
}
}
if(n==k)
{
printf("1\n");
}
else
{
printf("%d\n",num);
}
return 0;
}