Blotch修建了一面墙。
墙由 N 个部分构成,从左到右依次编号 1 到 N。
由于他修建的十分匆忙,墙的各个部分高度可能并不相同。
第 i 个部分墙体的高度用 Ai 来表示。
Blotch想要通过重建部分墙面,从而对墙进行修整。
他可以将任意部分的墙面重修为任意高度。
重修完成之后,如果满足 Ai≠Ai+1的 i (1≤i<N)的数量不超过 k,他将会十分高兴。
在满足能够使得Blotch十分高兴的前提下,最少需要重建多少部分墙面?
第一行包含整数 T,表示共有 T 组测试数据。
每组测试数据共两行,第一行包含整数 N 和 k。
第二行包含 N 个整数,其中第 i 个整数表示第 i 部分墙体的高度 Ai。
每组数据输出一个结果,每个结果占一行。
结果表示为“Case #x: y”,其中x是组别编号(从1开始),y为最少需要重建的墙面数量。
1≤T≤100,
1≤Ai≤100,
0≤k≤N,
2≤N≤100
4 8 2 300 100 300 300 200 100 800 500 5 3 100 100 100 100 3 7 3 10 20 40 10 10 30 30 10 2 30 30 60 60 90 90 60 60 30 30
Case #1: 3
Case #2: 0
Case #3: 1
Case #4: 2
在第一个示例中,有N = 8个墙段,如果相邻段之间的高度变化最多为K = 2,则Blotch会很高兴。他可以:
这将产生一面各部分高度分别为300、300、300、300、200、200、800、800的墙,这使Blotch感到高兴。
在第二个示例中,有N = 5个墙段,并且如果相邻段之间的高度变化最多为K = 3,则Blotch将很高兴。 Blotch已经对这堵墙感到满意,因此他不需要重建任何部分。
在第三个示例中,有N = 7个墙段,并且如果相邻段之间的高度变化最多为K = 3,则Blotch将很高兴。他可以:
这将产生一面各部分高度分别为10、10、40、10、10、30、30的墙,这使Blotch感到高兴。
在第四个示例中,有N = 10个墙段,并且如果相邻段之间的高度变化最多为K = 2,则Blotch将很高兴。他可以:
这将产生一面各部分高度分别为30、30、60、60、60、60、60、60、60、30、30的墙,这使Blotch感到高兴。
4
8 2
300 100 300 300 200 100 800 500
5 3
100 100 100 100 3
7 3
10 20 40 10 10 30 30
10 2
30 30 60 60 90 90 60 60 30 30
Case #1: 3
Case #2: 0
Case #3: 1
Case #4: 2