알파벳 다이아몬드

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

요약
N으로 정의된 다이아몬드 무늬 타일이 평면에 반복될 때, 지정한 사각형 영역에 있는 문자들을 출력하는 문제입니다.
난이도

쉬움10점 중 3점

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

문제

알파벳 다이아몬드 타일의 한 변 길이는 2N - 1입니다. 타일의 중심 좌표를 (N - 1, N - 1)이라고 할 때, 타일 안의 좌표 (r, c)에 대해 d = |r - (N - 1)| + |c - (N - 1)|를 계산합니다.

  • d >= N이면 그 칸에는 .이 적힙니다.
  • d < N이면 중심에서의 거리 d에 해당하는 알파벳 소문자가 적힙니다. d = 0은 a, d = 1은 b이며, z 다음에는 다시 a로 돌아갑니다.

N = 5인 타일 하나는 다음과 같습니다.

....e....
...ede...
..edcde..
.edcbcde.
edcbabcde
.edcbcde.
..edcde..
...ede...
....e....

방 바닥은 이 타일을 위아래와 좌우로 빈틈없이 반복해서 채운 무한한 평면입니다. 행은 위에서부터 0행, 열은 왼쪽부터 0열로 번호를 매깁니다.

정수 N과 직사각형의 왼쪽 위 좌표 (R1, C1), 오른쪽 아래 좌표 (R2, C2)가 주어집니다. 해당 직사각형에 적힌 문자를 그대로 출력하세요. 좌표 (x, y)는 x행 y열을 뜻합니다.

입력

첫째 줄에 정수 N, R1, C1, R2, C2가 공백으로 구분되어 주어집니다.

출력

R2 - R1 + 1개의 줄에 걸쳐 출력합니다. 각 줄에는 C2 - C1 + 1개의 문자를 공백 없이 출력합니다.

제한

  • 1 <= N <= 20,000
  • 0 <= R1 <= R2 <= 20,000
  • 0 <= C1 <= C2 <= 20,000
  • 0 <= (R2 - R1 + 1) * (C2 - C1 + 1) <= 40,000

예제1

  1. 예제 1

    입력
    5 3 18 10 46
    
    예상 출력
    .edcbcde..edcbcde..edcbcde..e
    edcbabcdeedcbabcdeedcbabcdeed
    .edcbcde..edcbcde..edcbcde..e
    ..edcde....edcde....edcde....
    ...ede......ede......ede.....
    ....e........e........e......
    ....e........e........e......
    ...ede......ede......ede.....