La tâche
Dans ce défi, votre tâche consiste à écrire trois programmes qui forment une sorte de système de type quine mutuel. Appelons les programmes A
, B
et C
. Si l'un des programmes reçoit la source d'un autre programme en entrée, il doit sortir la source du troisième programme. Par exemple, si A
est donné B
en entrée, il sort C
. Si les programmes sont donnés leur propre source en entrée, ils doivent sortir les trois chaînes "three"
, "mutual"
et "quines"
(sans les guillemets). Dans tous les cas, ils peuvent générer une nouvelle ligne de fin supplémentaire. Pour toute autre entrée, les programmes peuvent faire n'importe quoi, y compris planter.
Exemple
Par exemple, supposons que les codes source de A
, B
et C
sont aSdf
, ghJk
et zxcV
. Ensuite, les programmes doivent se comporter comme suit.
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
Règles et notation
Les solutions A
, B
et C
peuvent être soit des fonctions soit des programmes complets, mais elles doivent être totalement indépendantes: aucun code partagé n'est autorisé.
Les failles standard et les règles de quine s'appliquent, de sorte que les programmes ne peuvent en aucun cas accéder à leurs propres codes source.
Votre score est le nombre d'octets combinés de A
, B
et C
un score inférieur étant meilleur.
public static void main
partie quelque part.) Ou tout simplement que vous ne pouvez pas écrire une fonction qui est appelée par les trois?