2017.1.20【初中部 】普及组模拟赛C组 鸡腿の小路 题解

原题:

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.
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值