Logo
(追記) (追記ここまで)

33558번 - Texture Wrapping

시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 1024 MB80237133146.424%

문제

세로 길이가 $N,ドル 가로 길이가 $M$인 평면에 세로 길이가 $U,ドル 가로 길이가 $V$인 텍스처를 씌우려고 한다. 평면의 제일 왼쪽 위 칸에 텍스처의 왼쪽 위 칸이 만나게 해서 씌우려고 한다. 하지만 평면의 가로 또는 세로의 길이가 텍스처의 가로 또는 세로의 길이보다 길 수 있어 세 가지 방법 중 하나를 사용해서 평면을 다 씌울 수 있도록 하려고 한다.

세 가지의 방법은 다음과 같다.

1. clamp-to-edge

텍스처의 모서리를 늘려 빈 공간을 채우는 방식이다. 평면의 어떤 칸의 행 좌표가 텍스처의 세로 길이 이상이면 텍스처의 맨 아래 행에서 평면 칸과 동일한 열 좌표에 있는 칸을 해당 평면 칸에 씌운다. 열 좌표가 텍스처의 가로 길이 이상이면 텍스처의 맨 오른쪽 열에서 평면 칸과 동일한 행 좌표에 있는 칸을 해당 평면 칸에 씌운다. 행 좌표와 열 좌표가 각각 텍스처의 세로 길이, 가로 길이 이상이면 텍스처의 맨 아래 오른쪽 칸을 해당 평면 칸에 씌운다.

2. repeat

텍스처를 반복적으로 붙이면서 씌우는 방식이다. 평면을 아래 그림과 같이 세로 길이가 $U,ドル 가로 길이가 $V$인 조각으로 쪼갠 후 각 조각의 맨 왼쪽 위 칸이 텍스처의 맨 왼쪽 위 칸이 오도록 텍스처를 씌운다.

3. mirrored-repeat

텍스처를 텍스처 경계면에 대해 거울 반전 시키면서 붙여나가며 씌우는 방식이다. 평면을 아래 그림과 같이 세로 길이가 $U,ドル 가로 길이가 $V$인 조각으로 쪼갠 후 각 조각에서 왼쪽 조각을 씌울 때의 텍스처를 좌우반전, 아래쪽 조각을 씌울 때의 텍스처를 상하반전해서 해당 조각의 칸들을 씌운다.

평면의 크기와 텍스처, 그리고 사용할 방법이 주어질 때 평면의 최종 모습을 출력하자.

입력

첫 번째 줄에 평면의 크기 $N$과 $M$이 공백으로 구분되어 주어진다. $(1 \leq N \leq 200; 1 \leq M \leq 200)$

두 번째 줄에 텍스처의 크기 $U$와 $V$가 공백으로 구분되어 주어진다. $(1 \leq U \leq 200; 1 \leq V \leq 200)$

세 번째 줄부터 $U$개의 줄에 걸쳐 텍스처의 정보가 주어진다. 텍스쳐의 각 줄은 알파벳 대소문자 또는 숫자로 구성된 길이가 $V$인 문자열이다

$U+3$번째 줄에 텍스처를 씌울 방법이 주어진다. clamp-to-edge, repeat, mirrored-repeat 중 하나로 주어진다.

출력

텍스처를 씌운 평면의 최종 모습을 출력한다.

제한

예제 입력 1

7 7
3 3
123
456
789
clamp-to-edge

예제 출력 1

1233333
4566666
7899999
7899999
7899999
7899999
7899999

예제 입력 2

7 7
3 3
123
456
789
repeat

예제 출력 2

1231231
4564564
7897897
1231231
4564564
7897897
1231231

예제 입력 3

7 7
3 3
123
456
789
mirrored-repeat

예제 출력 3

1233211
4566544
7899877
7899877
4566544
1233211
1233211

힌트

출처

Contest > BOJ User Contest > 유틸컵 > 제2회 유틸컵 🏁✂️번

(追記) (追記ここまで)

출처

대학교 대회

  • 사업자 등록 번호: 541-88-00682
  • 대표자명: 최백준
  • 주소: 서울시 서초구 서초대로74길 29 서초파라곤 412호
  • 전화번호: 02-521-0487 (이메일로 연락 주세요)
  • 이메일: contacts@startlink.io
  • 통신판매신고번호: 제 2017-서울서초-2193 호

AltStyle によって変換されたページ (->オリジナル) /