原题:
http://172.16.0.132/junior/#contest/show/1370/2
题目描述:
故事の背景:
鸡腿终于意识到了毁坏树木是不对的,为了补偿之前毁坏树木造成的景观破坏,他决定在这些个树木被毁坏的地方建一条小路。为了鼓励鸡腿你当然也投入到了如火如荼的建设活动中来。经过一个月的精心建设,小路已经有了模样,不过因为砖头还没完全铺好,一些位置还是到不了。
问题の描述:
鸡腿想到了一个很高(sha)明(bi)的问题,现在这条小路的开头和结尾都弄好了,但是中间有很多位置还是坑爹的没铺地砖,那么鸡腿从1的位置开始走,因为腿短的原因每次最多走M格(虽然腿短,M却可以很大哦~),鸡腿能不能从开头走到结尾呢?
输入:
第一行两个整数N、M。
第2行,一个长度为N的字符串表示建设情况,若为“.”表示建好了,若为“#”表示没建好。
保证开头结尾都建好了。
输出:
一行一个字符串,如果可以就输出“YES”,否则输出“NO”。
样例输入:
样例输入1:
2 1
..
样例输入2:
5 2
.#.#.
样例输入3:
7 3
.#.###.
样例输出:
样例输出1:
YES
样例输出2:
YES
样例输出3:
NO
数据范围限制:
对于50%的数据:0
分析:
找出连续最长有多少个“#”,判断“#”的个数与m即可
实现:
var
n,m,i,bz,max:longint;
c:char;
begin
assign(input,'road.in');reset(input);
assign(output,'road.out');rewrite(output);
readln(n,m);
for i:=1 to n do
begin
read(c);
if c='.' then
begin
if i-bz>max then max:=i-bz;
bz:=i;
end;
end;
if m>=max then writeln('YES') else writeln('NO');
close(input);close(output);
end.