아직 만들고 있는 페이지입니다.

이 페이지는 아직 만드는 중입니다. 보이는 내용은 바뀔 수 있습니다.

HQ0-9+-INCOMPUTABLE?!

시간 제한1초메모리 제한1024 MB

요약
주어진 목표 문자열을 출력하도록 10000개 이하의 HQ0-9+-INCOMPUTABLE?! 명령으로 이루어진 프로그램을 작성한다.
난이도

어려움10점 중 10점

유형
문자열, 시뮬레이션, 구현, 완전 탐색
정답자
아직 제출이 없습니다

문제

HQ9+는 특정 작업에 특화된 난해한 프로그래밍 언어다. 예를 들어 "Hello, world!"를 출력하거나 퀴인(자신을 출력하는 프로그램)을 작성하는 일은 이보다 더 간단할 수 없다. 안타깝게도 HQ9+는 대부분의 다른 상황에서는 별로 쓸모가 없다. 그래서 우리는 이 언어의 자체 변형인 HQ0-9+-INCOMPUTABLE?!를 만들었다.

HQ0-9+-INCOMPUTABLE?! 프로그램은 공백 없이 한 줄로 작성된 명령어의 나열이다(끝의 개행 문자는 제외). 프로그램은 두 개의 메모리 영역에 데이터를 저장할 수 있다. 버퍼는 문자열이고, 누산기는 정수 변수다. 처음에 버퍼는 비어 있고 누산기는 0으로 설정된다. 모든 명령을 실행한 후의 버퍼 값이 프로그램의 출력이 된다.

HQ0-9+-INCOMPUTABLE?!는 다음 명령을 지원한다.

명령어설명
h, H버퍼에 helloworld를 추가한다
q, Q버퍼에 프로그램 소스 코드를 추가한다(끝의 개행 문자는 포함하지 않음)
0-9버퍼를 이전 값의 n개 복사본으로 바꾼다. 예를 들어 '2'는 버퍼를 두 배로 만든다
+누산기를 증가시킨다
-누산기를 감소시킨다
i, I버퍼의 모든 문자의 ASCII 값을 증가시킨다
n, N버퍼의 문자와 숫자에 ROT13을 적용한다(문자의 경우 ROT13은 대소문자를 유지하며, 숫자의 경우 ROT13(d) = (d + 13) mod 10으로 정의한다)
c, C버퍼의 모든 문자의 대소문자를 바꾼다. 다른 문자는 변경하지 않는다
o, O끝에서부터 센 인덱스가 소수이거나 2의 거듭제곱인(또는 둘 다인) 모든 문자를 버퍼에서 제거한다. 마지막 문자의 인덱스는 1이다(1은 2의 거듭제곱이다)
m, M누산기를 현재 버퍼 길이로 설정한다
p, P인덱스가 소수이거나 2의 거듭제곱인(또는 둘 다인) 모든 문자를 버퍼에서 제거한다. 첫 번째 문자의 인덱스는 1이다(1은 2의 거듭제곱이다)
u, U버퍼를 대문자로 변환한다
t, T버퍼의 문자를 ASCII 값으로 정렬한다
a, A버퍼의 모든 문자를 10진수 ASCII 값(1~3자리)으로 바꾼다
b, B버퍼의 모든 문자를 2진수 ASCII 값(정확히 8개의 '0'/'1' 문자)으로 바꾼다
l, L버퍼를 소문자로 변환한다
e, E버퍼의 모든 문자를 다음 표에 따라 l33t로 변환한다:```
ABCDEFGHIJKLMNOPQRSTUVWXYZ abcdefghijklmnopqrstuvwxyz 0123456789
48(03=6#JXLM 09Q257UVW%Y2 a6<d3f9hijk1m^0p9r57uvw*y2 O!ZEA$G/B9
| `?` | 버퍼 끝에서 47개 문자를 제거한다(버퍼가 너무 짧으면 전부 제거한다) |
| `!` | 버퍼 앞에서 47개 문자를 제거한다(버퍼가 너무 짧으면 전부 제거한다) |

보다시피 HQ0-9+-INCOMPUTABLE?!는 HQ9+보다 훨씬 강력하다. HQ0-9+-INCOMPUTABLE?! 프로그램을 작성하여 로그인하면 보이는 값을 출력함으로써 이를 증명하라.

제한

프로그램은 최대 10000개 명령어 길이여야 한다. 누산기는 무한하다(임의로 큰 정수를 저장할 수 있다). 각 명령 후 버퍼는 최대 10000자 길이여야 한다. 코드 주입 취약점을 방지하기 위해, 프로그램 실행 중 버퍼는 절대 영숫자가 아닌 문자, 즉 A-Z, a-z, 0-9 이외의 문자를 포함해서는 안 된다. 이를 어기면 프로그램은 런타임 오류로 실패하고 제출은 거부된다.

힌트

프로그램출력
h5!rld
QCqqcQQCq
q23q23q23q23q23q23q23
h?hhelloworld
H2Ohlwolheo
h4opollwldwlhe
hintccfkrsvzzz
q18Nd41Ad41Ad41Ad41Ad41Ad41Ad41Ad41A
3QAh518165104helloworld
Qb0101000101100010
opaque094QU3
h1Qt1Qdehhllloortw
H9999(오류: 버퍼 크기가 10000을 초과함)
quine(오류: 버퍼에 "|"가 포함됨)
LMAO(빈 출력)

예제1

  1. 예제 1

    입력
    
    
    예상 출력
    HQ09INCOMPUTABLE