#5202. [USACO14FEB] Mirror Field B

[USACO14FEB] Mirror Field B

USACO2014FEB 铜组第一题

题目翻译

农夫约翰把一些旧镜子放在房子外面,他的牛像往常一样调皮,把镜子偷走了!

牛们把镜子布置在一个 ( N ) 行 ( M ) 列(( 1 <= N, M <= 1000 ))的矩形场地里。在每个方格中,它们放置了一个双向镜子,由其对角的两种可能配置表示:

  • '/' 字符:镜子连接方格的左下角和右上角。
  • '\' 字符:镜子连接方格的左上角和右下角。

一天晚上,贝茜(Bessie)带着激光指针来到镜子场。她站在场地外,沿场地的某一行或某一列的水平或垂直方向发射激光束,激光会在镜子上反射。由于镜子是对角放置的,水平入射的激光经反射后会变为垂直方向,反之亦然。

贝茜想知道,从场地外发射的水平或垂直激光束,最多能反射多少次镜子。如果激光束会无限反射,请输出 -1。给定镜子场的布局,请帮贝茜计算这个最大反射次数。

输入输出格式

  • 输入格式
    • 第 1 行:整数 ( N ) 和 ( M ),用空格分隔。
    • 第 2 至 ( N+1 ) 行:每行包含 ( M ) 个 '/''\' 字符,描述镜子场的一行。
  • 输出格式
    输出一个整数,表示水平或垂直发射的激光束最多能反射的镜子次数。若无限反射,输出 -1

样例

样例输入

3 3
/\
\\
///

样例输出

3

输出详情
贝茜可以在场地中间列的上方垂直向下发射激光束,使其反射 3 次。