아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

패치워크

면접 대비

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

요약
직사각형 퀼트 격자 위에 패치를 주어진 순서와 위치대로 덧대고, 가장자리 밖으로 나간 부분을 잘라낸 뒤 최종 모양을 출력합니다.
난이도

쉬움10점 중 2점

유형
시뮬레이션, 구현
정답자
아직 제출이 없습니다

문제

아담의 할머니 생신이 다가와서, 아담은 할머니께 드릴 선물로 아름다운 패치워크 퀼트를 만들고 싶어 합니다. 아담에게는 퀼트에 달 패치 디자인이 여러 개 있지만, 각 패치를 어디에 놓을지 정하기 어려워합니다. 지금 그는 주어진 배치대로 패치를 모두 달아 본 뒤, 마음에 들지 않으면 전부 잘라 냅니다. 이 방식은 매우 비효율적이라서 아담은 시간이 부족해지고 있습니다.

아담은 직사각형 흰 천을 퀼트의 바탕으로 사용합니다. 패치 종류마다 개수는 무한히 있습니다. 각 패치 종류는 정해진 디자인이 그려진 직사각형 천 조각입니다. 아담은 패치를 주어진 순서와 위치에 달았을 때 천이 어떤 모습이 되는지 알고 싶어 합니다. 퀼트 바탕의 가장자리 밖으로 나오는 천은 잘라 내므로, 프로그램도 같은 방식으로 처리해야 합니다.

아담을 도와 완성된 퀼트를 출력하는 프로그램을 작성하세요.

입력

첫 줄에는 퀼트의 크기를 나타내는 정수 R,CR,C (1≤R,C≤1001≤R,C≤100)가 주어집니다. 처음에 퀼트는 흰색이며, RR행 CC열의 격자로 표현되고 각 칸은 흰색을 뜻하는 . (마침표) 문자입니다.

둘째 줄에는 패치 종류의 수 NN (1≤N≤1001≤N≤100)이 주어집니다. 각 패치 종류는 다음과 같이 주어집니다.

  • ii번째 패치 종류의 첫 줄에는 행 수 rir_i와 열 수 cic_i (1≤ri,ci≤1001≤r_i,c_i≤100)가 주어집니다.
  • 이어서 rir_i줄이 주어지며, 각 줄에는 cic_i개의 공백이 아닌 ASCII 문자가 들어 있고, 이것이 ii번째 패치의 디자인입니다.

다음 줄에는 아담이 퀼트에 달고 싶은 패치의 수 MM (1≤M≤1001≤M≤100)이 주어집니다. 이어지는 MM줄의 jj번째 줄에는 세 정수 qjq_j (1≤qj≤R1≤q_j≤R), tjt_j (1≤tj≤C1≤t_j≤C), pjp_j (1≤pj≤N1≤p_j≤N)가 주어집니다. 이는 pjp_j번째 패치를 왼쪽 위 모서리가 퀼트의 qjq_j행 tjt_j열 위치에 오도록 붙인다는 뜻입니다. 패치는 입력에 주어진 순서대로 붙입니다.

출력

모든 패치를 붙이고 가장자리 밖으로 나온 천을 잘라 낸 뒤의 완성된 퀼트를 출력하세요. RR행 CC열의 ASCII 문자로 출력하며, 각 위치에는 퀼트의 모습이 표시됩니다.

예제2

  1. 예제 1

    입력
    7 13
    3
    4 4
    ...#
    ../.
    ./..
    #...
    4 4
    #...
    .\..
    ..\.
    ...#
    1 5
    *****
    9
    3 0 1
    3 3 2
    6 1 3
    3 6 1
    3 9 2
    6 7 3
    0 3 1
    0 6 2
    3 4 3
    
    예상 출력
    ......#......
    ...../.\.....
    ..../...\....
    ...#*****#...
    ../.\.../.\..
    ./...\./...\.
    #*****#*****#
    
  2. 예제 2

    입력
    2 4
    5
    1 4
    ADAM
    1 6
    CRAFTS
    1 7
    UNUSUAL
    1 7
    PATCHES
    1 2
    20
    7
    0 0 3
    0 1 1
    0 2 4
    0 3 2
    1 0 5
    1 2 5
    1 3 5
    
    예상 출력
    UAPC
    2022