컵을 피라미드 (및 다른 모양)에 쌓을 수 있기 전에 모든 사람들이 본 적이 있다고 확신합니다.
A
A A A
A A A A A
A A A A A A A A
예, A
확실히 컵을 표현하기에 적합한 캐릭터입니다.
새 컵은지면, 구조물의 오른쪽 또는 인접한 두 컵 위에 추가 할 수 있습니다. 위의 구조가 다시 있지만 새 컵에 사용 가능한 모든 지점에는 _
다음 이 표시됩니다 .
_ A
A A A
A _ _ A A A A
A A A A A A A A _ _ _
이 컵 스택을 조립할 수있는 로봇을 만들고 싶다고 가정 해 봅시다. 로봇은 이러한 구조를 조작하기위한 두 가지 간단한 지침을 이해합니다.
a
: 왼쪽에서 오른쪽으로 읽는 순서 로 사용 가능한 첫 번째 지점에 새 컵을 추가합니다 (즉, 사용 가능한 지점을 찾을 때까지 왼쪽에서 오른쪽으로 행을 스캔 한 다음 컵을 배치합니다). 위의 예는 다음과 같습니다.A A A A A A A A A A A A A A A A A A
r
: 첫 번째 컵을 왼쪽에서 오른쪽으로 읽는 순서대로 제거합니다. 위의 예는 다음과 같습니다.A A A A A A A A A A A A A A A A
이 두 가지 작업 만 사용하여 처음부터 모든 구조를 만들 수 있음 이 밝혀졌습니다 . 예 :
A
A A A
A A A A A
일련의 지침으로 구축 가능
aaaaaaaaaaaarrrrraa
위의 더 큰 예제는
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrraaaaaaarr
여기 더 큰 것이 있습니다.
A
A A A
A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A A
이것으로 만들 수 있습니다
aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrrraaaaaaaaaaaaaaaaaaarrrrrrrrrrrrrrraaaaaaaaaaaaaarrrrrrrrrrraaaaaaaa
참고 : 지면의 얼룩이 제거 지침으로 해제되면 기존 컵의 오른쪽에 컵을 놓기 전에 재사용됩니다 . 예 :
aaaarrra
생산할 것이다
A A
아니
A A
지면을 반 무한 컵의 맨 위에 있다고 생각할 수 있습니다.
도전
스택 컵의 구조가 주어지면,이 구조를 만들기위한 지시 사항을 나타내는 순서를 리턴하십시오. 기본 점수는 하단에 제공된 테스트 사례에 대한 지침 수의 합계입니다. 효율적인 경우 최적의 솔루션이 가능하다고 확신하기 때문에 동점 일 경우 가장 짧은 솔루션이 우선합니다.
규칙에 대한 자세한 내용은 다음과 같습니다.
- 입력의 맨 아래 줄에 선행 공간이 없다고 가정 할 수 있으므로 컵이있는 가장 왼쪽의지면 지점이 항상 사용됩니다.
- 적당한 양의 후행 공백 (공백 없음, 하나의 공백, 사각형으로 채워짐, 단일 후행 공백으로 사각형으로 채워짐)을 가정 할 수 있습니다.
- 선택적으로 입력이 단일 후행 줄 바꿈으로 끝나기를 기대할 수 있습니다.
A
공백 대신 공백으로 인쇄 가능한 ASCII 문자 (0x20 ~ 0x7E 포함)를 선택할 수 있습니다 ( 공백에 대한 규칙은 선택한 문자로 전송 됨).- 출력에는 연산을 나타내는 두 개의 고유 한 문자 만 포함되어야합니다 (
a
및 이외의 다른 문자를 선택할 수 있음r
). 선택적으로 단일 후행 줄 바꿈을 인쇄 할 수 있습니다. - 귀하의 코드는 합리적인 데스크탑 PC에서 1 분 이내에 아래의 테스트 사례 를 해결할 수 있어야합니다 (2 분이 걸리면 의심의 이익을 주지만 10 시간이 걸리면 승리합니다) 't-1 초 이내에 알고리즘을 해결할 수있는 최적의 알고리즘이 가능하다고 생각합니다.
- 개별 테스트 사례에 맞게 코드를 최적화해서는 안됩니다 (예 : 하드 코딩). 본인이 의심하는 경우 테스트 사례를 변경할 권리가 있습니다.
이 CJam 스크립트 를 리버스 작업에 사용할 수 있습니다 . 일련의 조립 지침이 필요하며 결과 컵이 인쇄됩니다. (스 니펫을 다시 작성하고 속도를 크게 높인 Dennis에게 감사합니다.)
Sp3000은 또한 동일한 목적 으로이 대체 Python 스크립트 를 친절하게 제공 했습니다 .
테스트 사례
각 테스트 사례 후에 Ell의 답변에 따른 최적의 명령어 수를 나타내는 숫자가 있습니다.
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
820
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
1946
A
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
2252
A A
A A A A
A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
9958
A A
A A A A
A A A A A A
A A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A
A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5540
A A A A A A A A A A A A A A A A A A A A
10280
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
10320
A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5794
A
A A
A A A
A A A A A
A A A A A A A
A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
3297
A A
A A A
A A A A
A A A A A
A A A A A A
A A A A A A A
A A A A A A A A
A A A A A A A A A
A A A A A A A A A A A
A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
4081
A
A A A A
A A A A A A A A A
A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
4475
A
A A A A A A A A
A A A A A A A A A A A A A A A A A A A
A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A A
5752
즉, 최고 점수는 64,515 개 입니다.