Normalmente, os poliglotas são construídos de tal maneira que cada idioma pode ignorar partes do código que estão presentes em outros idiomas, envolvendo-os em literais de string, usando sintaxe de comentário ou outros truques semelhantes.
Seu objetivo é escrever uma poliglota em que a saída para cada idioma seja o código da poliglota que produz essa saída. Especificamente, a saída deve ser construída a partir do código poliglota apenas com exclusões e deve ser uma solução no idioma especificado.
Regras
- Somente quines apropriados são permitidos (sem leitura do código fonte, sem entrada de entrada, a saída deve ser STDOUT ou a alternativa mais próxima se STDOUT não for uma opção e os programas devem consistir em mais do que apenas literais que são impressos implicitamente).
- Como idiomas diferentes podem usar codificações diferentes, os bytes brutos são o que importa aqui. Por exemplo, se o idioma A usar UTF-8 e o idioma B usar CP437, o código (hex)
C3 88 46 47
seráÈFG
para o idioma A eÈFG
para o idioma B. - Todas as saídas devem ser distintas (novamente, comparando bytes brutos). Isso evita complicações com a tentativa de restringir versões de idiomas menores - se dois idiomas usam a mesma parte do código para fazer a mesma coisa, você não pode reivindicar os dois.
- Se você tiver dois idiomas A e B, que
XY
sejam uma saída válida em ambos, masYZ
também seja válido em B, poderá escolherXY
como saída para A eYZ
como saída para B, para poder reivindicar os dois em sua pontuação ( mas você não pode reivindicar osXY
dois idiomas por causa da regra acima).
- Se você tiver dois idiomas A e B, que
- Todas as saídas devem ser tão curtas quanto possível. Por exemplo, se seu código fosse
print('foo')#something
, para Python 3 (ignorando o fato de que a saída não está correta), o código que você precisaria produzir seriaprint('foo')
eprint('foo')#
não seria permitido. Se houver várias cadeias de comprimento igual (mínimo) que produzam a saída correta, você pode escolher qualquer uma delas. - As inscrições devem ser poliglotas em pelo menos 2 idiomas.
- Sua pontuação será dada por
(number of programming languages with distinct outputs)**3/(total byte size of polyglot)
. A pontuação mais alta vence. No caso de duas submissões atingirem a mesma pontuação, a submissão que atingir essa pontuação primeiro vencerá.