有一个矩形的采摘园,采摘园里有 N 行 M 列果树,其中有梨树和苹果树,一天小青要去采摘园采摘果子,到了采摘园,看到提示牌写到:
只可以采摘苹果,梨树暂不能采摘(未成熟)。
采摘的起点是采摘园中指定的某一棵苹果树。
从起点开始可以向上、向下、向左、向右移动(只能在采摘园中移动),且只能在苹果树下移动,不能越过梨树。
编写一个程序,计算小青从起点出发最多可到达多少棵苹果树下采摘(包括起点苹果树)。
第一行输入两个以空格隔开的正整数 N (2 < N < 51) , M (2 < M < 51) ,分别表示 N 行 M 列的果树。
接下来的 N 行每行输入 M 个数字并以一个空格隔开,数字为 “1” , “2” , “6” ,分别表示苹果树,梨树及起点(起点也是苹果树)。
输出一个整数,表示小青在 N \times M 的采摘园中从指定起点出发最多可到达几棵苹果树下采摘(包含起点苹果树)。
【样例 1 输入】
3 4 2 1 2 1 1 6 1 2 1 1 1 2
【样例 1 输出】
7
【样例 1 解释】
矩形的采摘园中有 3 行 4 列的果树,用数字 “1” 表示苹果树,用数字 “2” 表示梨树,用数字 “6” 表示起点(起点也是苹果树),随机指定的苹果树、梨树及起点排列如下图,故从起点出发最多可到达 7 课苹果树下采摘(包含起点苹果树)。
如图所示:
十二届蓝桥杯C++国赛试题 F