시간 제한메모리 제한제출정답맞힌 사람정답 비율
1 초 512 MB6922284.103%

문제

A+B를 계산하는 마인크래프트 월드를 제출하세요.

월드가 지켜야 할 규칙

입력은 레버를, 출력은 레드스톤 램프를 통해 이루어집니다. 이들 블록을 포함하여, 모든 블록은 (0, 0, 0)과 (511, 255, 511)를 꼭짓점으로 하는 직육면체 안에 있어야 합니다. 여러분은 월드의 r.0.0.mca를 제출합니다.

월드 내 모든 블록은 다음 중 하나여야 합니다: bedrock, stone, sandstone, redstone_wire, redstone_wall_torch, redstone_torch, repeater, comparator, lever, redstone_lamp, *_concrete.

회로에서 모든 수는 이진법으로 입력 및 출력됩니다. 연두색 콘크리트 블록에 붙어 있는 레버가 첫 번째 입력이, 하늘색 콘크리트 블록에 붙어 있는 레버가 두 번째 입력이 됩니다. 레버와 레드스톤 모두 (z, x, y) 순으로 정렬했을 때 앞에 오는 것이 하위 비트가 됩니다. 모든 입력 비트는 각 레버에 동시에 들어온다고 가정해도 좋습니다.

각 블록은 회로가 바뀜에 따라 레드스톤 업데이트를 받을 수 있는데, 자동 채점을 위해 이때 같은 틱 내에서는 어떤 순서로 레드스톤 업데이트를 받든지에 상관없이 같은 결과가 나와야 합니다. 즉, 비지역적이고(non-locational), 비방향적인(non-directional) 회로를 만들어야 할뿐만 아니라 각 블록이 기본적으로 가진 priority 등을 무시하고 어떤 순서로 틱을 줘도 같은 결과가 나오게 회로를 만드셔야 합니다.

실제 마인크래프트와는 다르게, 각 블록의 레드스톤 업데이트 시점에 딜레이 이후의 상황을 따져서 업데이트합니다. 즉, 1틱짜리 신호는 신호를 4틱에 걸쳐 머무르게 하지 않는 이상 딜레이 4인 리피터에 신호를 줄 수 없습니다.

위 조건만 있다면 틱 시간을 제대로 계산할 수 없는데, 그래서 조건을 더 추가합니다. 레드스톤 와이어와 레드스톤 토치는 택시 거리로 주위 2블록 안에 들어오는 블록 중 그 블록의 입장에서 와이어나 토치가 레드스톤 업데이트를 받았을 때 입력으로 쓰이는 것들에 대해서만 업데이트합니다. 엄밀히 말해서 틀렸지만 쉬운 표현은 연결된 회로만 고려되고, 끊어진 회로는 업데이트 대상에 고려되지 않는다는 것입니다.

위 조건들을 모두 고려했을 때 업데이트해야 하는 최소 개수의 블록들만 업데이트합니다. 즉, 작동 시간이 아주 긴 회로가 있어도 레드스톤 업데이트를 받지만 않으면 실제로 작동하는 일이 없기 때문에 시간 안에 종료할 수 있습니다.

월드 전체에서 유한한 레드스톤 업데이트 이후 더 이상 업데이트가 일어나지 않도록 해야 합니다. (업데이트를 받지 않은 펄서는 펄서로 기능하지도 않지만) 펄서 등을 만들어 무한히 많은 업데이트가 일어나게 하는 경우 시간 초과를 받을 수 있습니다.

만들어진 회로는 컴파일러와 인터프리터를 거쳐 실행됩니다. 이 컴파일러 및 인터프리터는 위의 입력 규칙 및 출력 규칙을 지키면서 회로를 프로그램처럼 실행하게 해 줍니다. 지문에 나와 있지 않은 세부 조건은 컴파일러 및 인터프리터의 코드를 참고하시기 바랍니다. 만일 위의 설명이 코드와 일치하지 않는 부분이 있으면 코드가 우선합니다.

입력

인터프리터의 첫째 줄에 두 정수 A, B가 공백을 사이에 두고 주어집니다. (0 < A,B < 10)

출력

인터프리터가 첫째 줄에 A+B의 값을 출력하도록 하세요.

서브태스크 1 (119304648점)

추가 제약 조건이 없습니다.

서브태스크 2 (357913941점)

다음 블록이 회로에 있어서는 안 됩니다: comparator.

서브태스크 3 (715827882점)

다음 블록이 회로에 있어서는 안 됩니다: redstone_wall_torchredstone_torch.

서브태스크 4 (954437176점)

레드스톤 램프가 켜지거나 꺼지는 시간(출력 시간)을 제외하고 15 레드스톤 틱 이하에 모든 연산이 완료되어야 합니다.

예제 입력 1

1 2

예제 출력 1

3

노트

서브태스크에 별도 명시되지 않는 한 틱 수에는 제한이 없으나, 연산량이 너무 많으면 시간 초과를 받을 수 있습니다. 연산량은 레드스톤 업데이트를 받는 횟수에 비례합니다.

출처

Contest > BOJ User Contest > 구데기컵 > 진짜 최종 구데기컵 2 🌳번

  • 문제를 만든 사람: kipa00

제출할 수 있는 언어

Minecraft

채점 및 기타 정보

  • 예제는 채점하지 않는다.