UN 청사 짓기
면접 대비시간 제한3초메모리 제한128 MB
n by n 두 층짜리 건물에서 아래층은 행별로, 위층은 열별로 국가를 배정하는 고정된 배치를 그대로 출력하는 문제입니다.
문제
국제연합(UN)이 직육면체 모양의 새 청사를 짓기로 했다. 청사는 크기가 똑같은 직사각형 층 여러 개를 위로 차곡차곡 쌓아 만든다. 각 층은 같은 크기의 직사각형 격자이며, 격자의 각 칸은 사무실 하나이다.
두 사무실이 인접하다는 것은, 같은 층에 있으면서 벽을 맞대고 있거나, 한 사무실이 다른 사무실 바로 위에 놓여 있는(아래 사무실의 천장이 위 사무실의 바닥인) 경우를 말한다.
이 청사에는 개국의 대표부가 들어온다. 각 나라는 사무실 여러 개를 배정받으며, 한 나라의 사무실들은 반드시 연결된 영역을 이루어야 한다. 즉 한 나라의 어떤 사무실에서 출발하든 그 나라의 인접한 사무실들만 거쳐 같은 나라의 다른 모든 사무실에 도달할 수 있어야 한다.
또한 어느 두 나라든 공유하는 벽이나 천장 뒤에서 은밀히 협상할 수 있어야 하므로, 모든 두 나라 쌍은 인접한 사무실 쌍을 적어도 하나씩 가져야 한다.
이런 청사는 항상 존재한다. 답을 유일하게 만들기 위해, 아래 출력에서 설명하는 특정한 유효 청사를 출력해야 한다.
입력
정수 ()이 한 줄에 주어진다. 나라의 수이다.
출력
아래 규칙대로 청사를 만든 뒤 그대로 출력한다.
- 청사의 높이는 (두 개 층)이고, 각 층은 격자이다(개의 줄, 각 줄에 개의 문자).
- 나라들에 순서(대문자를 먼저, 그다음 소문자)의 앞에서부터 개의 문자를 이름표로 붙인다. 이 이름표들을 이라 하자.
- 아래층: 번째 줄의 모든 사무실은 나라 의 것이므로, 번째 줄은 문자 를 번 반복한 것이다.
- 위층: 번째 열의 모든 사무실은 나라 의 것이므로, 모든 줄이 과 같다.
먼저 세 정수 , , 을 출력한다. 각각 청사의 높이, 너비, 길이이며 여기서는 , 이다. 그다음 아래층을 개의 줄(각 줄 개 문자)로 출력하고, 빈 줄 하나를 출력한 뒤, 위층을 개의 줄(각 줄 개 문자)로 출력한다.