만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

스탬프 격자

면접 대비

시간 제한2초메모리 제한1024 MB

요약
빈 N x N 캔버스에 K x K 도장을 회전해 가며 찍어 목표 그림을 만들 수 있는지 판단합니다. 빈 칸은 칠해지면 안 됩니다.
난이도

보통10점 중 4점

유형
완전 탐색, 행렬, 시뮬레이션
정답자
아직 제출이 없습니다

문제

스탬프 그림은 N×NN \times N 크기의 캔버스에 흑백으로 그린 그림이다. 일부 칸에는 잉크가 칠해져 있고 나머지 칸은 비어 있다. 그림은 N×NN\times N 문자 배열로 나타낸다(1≤N≤201\le N\le 20). 배열의 jj번째 열에 있는 ii번째 원소는 해당 칸에 잉크가 있으면 *, 없으면 .이다.

비숑은 원하는 스탬프 그림을 만들려고 한다. 파머 존은 K×KK\times K 크기(1≤K≤N1\le K\le N)의 스탬프 하나와 빈 N×NN \times N 캔버스를 빌려준다. 비숑은 찍는 사이마다 스탬프를 시계 방향으로 90∘90^{\circ}씩 회전할 수 있고, 스탬프가 격자 안에 완전히 들어가는 한 격자 어디에든 찍을 수 있다. 정확히는 정수 i,ji, j를 i∈[1,N−K+1]i \in [1, N-K+1], j∈[1,N−K+1]j \in [1, N-K+1]에서 고른다. 모든 (i′,j′)(i', j') (1≤i′,j′≤K1 \le i', j' \le K)에 대해 스탬프의 (i′,j′)(i', j') 칸에 잉크가 있으면 캔버스의 (i+i′−1,j+j′−1)(i+i'-1, j+j'-1) 칸을 검게 칠한다. 한 번 검게 칠해진 칸은 계속 검은색으로 남는다.

입력

첫 줄에 테스트 케이스 수 TT가 주어진다. 각 테스트 케이스는 정수 NN으로 시작하고, 비숑이 원하는 그림을 나타내는 *와 .으로 이루어진 NN줄이 이어진다. 다음 줄에는 KK가 주어지고, 파머 존의 스탬프를 나타내는 *와 .으로 이루어진 KK줄이 이어진다. 테스트 케이스는 빈 줄로 구분된다.

출력

각 테스트 케이스마다 "YES" 또는 "NO"를 한 줄에 출력한다.

예제1

  1. 예제 1

    입력
    4
    
    2
    **
    *.
    1
    *
    
    3
    .**
    .**
    ***
    2
    .*
    **
    
    3
    ...
    .*.
    ...
    3
    .*.
    ...
    ...
    
    3
    **.
    .**
    ..*
    2
    .*
    *.
    
    예상 출력
    YES
    YES
    NO
    YES