ASCII 상자는 다음과 같습니다.
++ +---+ +------+ +---+ +---+
++ | | | | | | | |
| | | | | | | |
+-+ | | | | | | | |
+-+ | | | | | | +---+
+---+ | | | |
+--+ | | | | ++
| | | | | | ||
| | +------+ | | ||
+--+ | | ||
+---+ ||
||
+-----+ ||
+------------+ | | ++
| | | |
| | | |
+------------+ +-----+
다음은 동일한 ASCII 상자의 몇 가지 예입니다.
++ +- -+ +- -+ +- -+ +- -+
++ | - | | - - | | - | | - |
| | | -- | | | | |
+-+ | | | | " | - |
+-+ | - | || | | +- -+
+- -+ | | | |
+--+ | -- | | | ++
| | | - - | " ||
| | +- -+ | | ||
+--+ | - | | |
+- -+ | |
-- ||
- - +- -+ ||
+- - - -+ | - - | ++
| -- -- | | = |
| -- -- | | - - |
+- - - -+ +- -+
- -
--
다음 은 복사하기 쉬운 형식으로 모든 테스트 사례 상자에 대한 링크입니다. 순서는 모든 입력과 동일한 순서로 모든 출력이 뒤 따릅니다.
목표는 ASCII 상자를 입력으로 사용하여 묵시 상자를 반환하는 것입니다. 파열 규칙은 다음과 같습니다.
- "+"는 절대 바뀌지 않습니다. "-"또는 "|" "+"에 직접 인접
- 모서리에서 시작하여 "-"및 "|" 같은 캐릭터보다 모퉁이에 가깝게 한 칸 더 안쪽으로 움직입니다. "-"및 "|" 같은 지점으로 이동하거나 이동하지 않습니다.
- "-"와 "-"가 같은 지점으로 이동하면 해당 지점에 "="를 넣으십시오. "|" "|" 같은 지점으로 이동하고 해당 지점에 "를 넣으십시오.이 지점은 반대 방향으로 이동하는 동일한 지점의 각 문자 중 두 개로 간주됩니다.
- 두 개의 "-"또는 두 개의 "|" 왼쪽 하단의 예와 같이 서로를 지나갈 수 있습니다.
- 상자가 충분히 마른 경우 같은 방법으로 바깥쪽으로 확장되기 시작하고 항상 시작 부분에서 멀어 지도록 이동합니다.
- 결과는 중심선을 가로 질러 x 및 y 방향으로 대칭이어야합니다 (줄 바꾸기 무시). 여기에는 공백이 포함되므로 결과를 만족시키기 위해 공백으로 채워야 할 수도 있습니다.
규칙 세부 사항 :
- 이것은 코드 골프이므로 바이트 단위의 가장 짧은 프로그램이 승리합니다.
- 표준 허점이 적용됩니다.
- 각 줄이 줄 바꿈 문자로 끝나는 것으로 가정 할 수 있습니다.
- 입력 문자열의 유일한 문자는 "+", "-", "|", ""및 "\ n"(줄 바꿈)이며 출력 문자열은 "="를 추가하여 동일한 규칙을 따라야합니다. 와 "는 가능한 문자입니다.
- 마지막 줄의 끝에 하나의 후행 줄 바꿈을 선택적으로 가질 수 있습니다.
- 처리해야 할 가장 작은 ASCII 상자가 왼쪽 위의 예입니다. 모든 ASCII 상자의 모서리에는 정확히 4 개의 "+"가 있습니다.
- (가장 큰 문자열 크기 ) 와 같은
m x n
정수 의 크기 상자를 처리해야합니다.m,n
2<=m,n<256
255*(255+1)
- 항상 유효한 단일 ASCII 상자를 입력으로 사용한다고 가정 할 수 있습니다.
||
그 예에서 그 중 하나가 "
뭔가 일 필요가 있다고 생각 합니다.
"
않습니까? "
3 와이드 이상에서만 나타나는 것 같아요 ?
"
갈 것인가? 왼쪽 또는 오른쪽? 둘 다 될 수는 없지만 결과가 대칭이기 때문에 둘 중 하나 일 수 없습니다.