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?

#ComputerScience

Note by Michael Loh
7 years, 4 months ago

No vote yet
1 vote

  Easy Math Editor

This discussion board is a place to discuss our Daily Challenges and the math and science related to those challenges. Explanations are more than just a solution — they should explain the steps and thinking strategies that you used to obtain the solution. Comments should further the discussion of math and science.

When posting on Brilliant:

  • Use the emojis to react to an explanation, whether you're congratulating a job well done , or just really confused .
  • Ask specific questions about the challenge or the steps in somebody's explanation. Well-posed questions can add a lot to the discussion, but posting "I don't understand!" doesn't help anyone.
  • Try to contribute something new to the discussion, whether it is an extension, generalization or other idea related to the challenge.
  • Stay on topic — we're all here to learn more about math and science, not to hear about your favorite get-rich-quick scheme or current world events.

MarkdownAppears as
*italics* or _italics_ italics
**bold** or __bold__ bold

- bulleted
- list

  • bulleted
  • list

1. numbered
2. list

  1. numbered
  2. list
Note: you must add a full line of space before and after lists for them to show up correctly
paragraph 1

paragraph 2

paragraph 1

paragraph 2

[example link](https://brilliant.org)example link
> This is a quote
This is a quote
    # I indented these lines
    # 4 spaces, and now they show
    # up as a code block.

    print "hello world"
# I indented these lines
# 4 spaces, and now they show
# up as a code block.

print "hello world"
MathAppears as
Remember to wrap math in \( ... \) or \[ ... \] to ensure proper formatting.
2 \times 3 2×3 2 \times 3
2^{34} 234 2^{34}
a_{i-1} ai1 a_{i-1}
\frac{2}{3} 23 \frac{2}{3}
\sqrt{2} 2 \sqrt{2}
\sum_{i=1}^3 i=13 \sum_{i=1}^3
\sin \theta sinθ \sin \theta
\boxed{123} 123 \boxed{123}

Comments

There are no comments in this discussion.

×

Problem Loading...

Note Loading...

Set Loading...