×

Mirror Field

Farmer John has left some old mirrors sitting outside his house, and his cows, feeling mischievous as always, have stolen them!

The cows have set up the mirrors in a rectangular field measuring N by M squares (1 <= N, M <= 1,000). In each square, they have placed a double sided mirror between two of its opposite corners. These two possible configurations are represented by the '/' character (a mirror connecting the lower-left corner to the upper-right corner) and the '\' character (a mirror connecting the upper-left corner to the lower-right corner).

One evening, Bessie the cow brings a laser pointer out to the mirror field. Standing outside the field, she shines the beam of light either horizontally or vertically along either a row or column of the field, causing it to bounce of some number of mirrors. Since the mirrors are all diagonally oriented, a horizontal beam of light that reflects off a mirror will end up traveling vertically, and vice versa. Bessie wonders what is the maximum number of mirrors on which her beam of light can be reflected at the same time. Given the layout of the mirror field, please help Bessie compute this number.

PROBLEM NAME: mirror

INPUT FORMAT:

• Line 1: The integers N and M, separated by a space.

• Lines 2..1+N: Each line will contain M '/' or '\' characters, describing a row of the mirror field.

SAMPLE INPUT (file mirror.in):

3 3 /\ \\ /\/

OUTPUT FORMAT:

• Line 1: A single integer indicating the maximum number of times a horizontal or vertical beam originating outside the mirror field could be reflected. Please output -1 if it could be reflected indefinitely.

SAMPLE OUTPUT (file mirror.out):

3

OUTPUT DETAILS:

Bessie can shine the beam downwards above the middle column of her field to have it reflected 3 times.

Can any1 solve for me?

Note by Michael Loh
2 years, 11 months ago