작업
이 도전에서, 당신의 임무는 일종의 상호 quine-like 시스템을 형성하는 세 개의 프로그램을 작성하는 것입니다. 하자가 프로그램을 호출 A
, B
하고 C
. 프로그램 중 하나에 다른 프로그램의 소스가 입력으로 제공되면 세 번째 프로그램의 소스가 출력됩니다. 예를 들어, 입력 A
으로 제공된 B
경우을 출력 C
합니다. 프로그램이 입력으로 자신의 소스를 제공하는 경우, 그들은 출력 세 개의 문자열하여야한다 "three"
, "mutual"
그리고 "quines"
(따옴표없이). 모든 경우에, 그들은 하나의 추가 후행 줄 바꿈을 출력 할 수 있습니다. 다른 입력의 경우 프로그램은 충돌을 포함하여 모든 작업을 수행 할 수 있습니다.
예
예를 들어, 그 소스 코드를 가정 A
, B
하고 C
있다 aSdf
, ghJk
그리고 zxcV
. 그런 다음 프로그램은 다음과 같이 작동해야합니다.
Source Input Output
--------------------
aSdf aSdf three
aSdf ghJk zxcV
aSdf zxcV ghJk
ghJk aSdf zxcV
ghJk ghJk mutual
ghJk zxcV aSdf
zxcV aSdf ghJk
zxcV ghJk aSdf
zxcV zxcV quines
규칙과 득점
솔루션은 A
, B
및 C
기능 또는 전체 프로그램 중 하나가 될 수 있지만 완전히 독립적이어야 에는 공유 코드는 허용되지 않습니다.
표준 허점 및 퀴니 규칙이 적용되므로 프로그램은 어떤 방식 으로든 자체 소스 코드에 액세스 할 수 없습니다.
당신의 점수는의 결합 된 바이트 수입니다 A
, B
그리고 C
낮은 점수는 더 나은 것.
public static void main
어딘가에 있기 때문에 Java로 응답하기가 어려울 것 입니다.) 아니면 세 가지 모두에 의해 호출되는 함수를 작성할 수 없다는 것입니까?