Using the definitions

typedef vector<char> Row;
typedef vector<Row> Matrix;

implement a function

int pattern(const Matrix& P, const Matrix& M);

to compute how many times the pattern *P* appears inside the matrix *M*.
It is guaranteed that both matrices are rectangular.
Furthermore, if *P* has dimensions r_{1} × c_{1}
and *M* has dimensions r_{2} × c_{2},
then it holds 1 ≤ r_{1} ≤ r_{2} ≤ 50
and 1 ≤ c_{1} ≤ c_{2} ≤ 50.

For instance, the pattern 2 × 3 to the left appears twice in the matrix 3 × 4 to the right.

⎛ ⎜ ⎝ |
| ⎞ ⎟ ⎠ | | ⎛ ⎜ ⎜ ⎝ |
| ⎞ ⎟ ⎟ ⎠ |

You may implement auxiliar procedures if needed.

Hint

The expected solution simply checks the pattern on every possible position of the matrix.

Observation You only need to submit the required procedure; your main program will be ignored.

Information

- Author
- Jordi Cortadella
- Language
- English
- Translator
- Salvador Roura
- Original language
- Catalan
- Other languages
- Catalan
- Official solutions
- C++
- User solutions
- C++