页面无法加载?点击这里可能会修复。
Placeholder

#10421

펀치 카드 5s 1024MB

问题

비밀리에 활동하는 한 프로그래머 팀이 프로그래밍 언어 판도를 뒤흔들고, 펀치 카드(punched card)를 부활시키려는 계획을 세우고 있다. 그들은 사람들이 펀치 카드를 사용해 파이썬을 코딩할 수 있게 해 주는 Punched Card Python이라는 새 언어를 소개하려 한다! 진정한 "파괴적 혁신"을 꿈꾸는 그들은, 프로토타입 설계조차 완성하기도 전에 새 언어를 홍보하기 위한 바이럴 캠페인을 시작하려 한다. 캠페인용으로, 다양한 크기의 펀치 카드를 ASCII 아트로 그려내고 싶다.

Example Punched Card.

그들이 그리고자 하는 펀치 카드의 ASCII 아트는, 왼쪽 위 칸이 없는 \mathbf{R} \times \mathbf{C} 행렬과 비슷하다. 즉 전체 칸 수는 (\mathbf{R} \cdot \mathbf{C}) - 1개이다. 각 칸은 ASCII 아트에서 가운데의 마침표(.) 하나를 위/아래의 대시(-), 좌/우의 파이프(|), 각 꼭짓점의 더하기(+)로 둘러싼 형태로 그린다. 서로 인접한 칸들은 경계선의 문자를 공유한다. 또한 맨 윗줄의 칸들을 정렬하기 위해 마침표(.)를 사용한다.

예를 들어 아래는 \mathbf{R} = 3\mathbf{C} = 4열인 펀치 카드이다:

..+-+-+-+
..|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+

샘플에는 다른 크기의 예시도 더 있다. 펀치 카드의 크기를 나타내는 정수 \mathbf{R}\mathbf{C}가 주어질 때, 위에서 설명한 대로 펀치 카드의 ASCII 아트를 출력하라.


输入

입력의 첫 줄에는 테스트 케이스 수 \mathbf{T}가 주어진다. 그 다음 \mathbf{T}줄이 이어지며, 각 줄은 두 정수 \mathbf{R}, \mathbf{C}로 테스트 케이스 하나를 설명한다. 이는 그려야 하는 펀치 카드의 행 수와 열 수이다.


输出

각 테스트 케이스마다 먼저 Case #x: 한 줄을 출력하라. 여기서 x는 (1부터 시작하는) 테스트 케이스 번호이다. 그 다음 (2 \cdot \mathbf{R}) + 1줄을 더 출력하여, \mathbf{R}\mathbf{C}열 펀치 카드의 ASCII 아트를 출력하라.


示例

3
3 4
2 2
2 3
Case #1:
..+-+-+-+
..|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
|.|.|.|.|
+-+-+-+-+
Case #2:
..+-+
..|.|
+-+-+
|.|.|
+-+-+
Case #3:
..+-+-+
..|.|.|
+-+-+-+
|.|.|.|
+-+-+-+
샘플 케이스 #1은 문제 설명에 나온 경우이다. 샘플 케이스 #2와 #3은 추가 예시다. 각 케이스의 출력에는 정확히 \mathbf{R} \cdot \mathbf{C} + 3개의 마침표가 포함됨을 유의하라.

来源

GCJ 2022qr A

需要登录才能编写代码。