156AC - ABC054B: Template Matching

ABC054-B (200 points)
問題

 N \times N の行列  A M \times M の行列  B が与えられたとき ( M \leq N),  B A に含まれるかどうかを判定する.

  •  1 \leq  M \leq N \leq 50
方針
  • 総当たり.
import numpy as np

# input
N, M = map(int, input().split())
A = [list(input()) for _ in range(N)]
B = [list(input()) for _ in range(M)]

A_arr = np.array(A)
B_arr = np.array(B)

for i in range(N - M + 1):
    for j in range(N - M + 1):
        if np.array_equal(A_arr[i:i + M, j:j + M], B_arr):
            print('Yes')
            exit()

print('No')