Será que vai parar? (Policiais)


94

Este é o tópico dos policiais. A discussão dos ladrões está aqui .

Seu desafio é criar um programa que funcione para sempre sem interromper 1 , a menos que obtenha uma entrada ou entradas específicas 2 . Se receber essa entrada, deverá terminar em um período finito de tempo 3 . Isso é , então a resposta mais curta que não foi quebrada por um ladrão dentro de uma semana após a publicação vence. Após a semana, marque sua resposta como segura e mostre a entrada de parada (em a > ! spoiler quote). Se um ladrão quebrar sua submissão, marque-a como rachada e mostre a entrada interrompida (em a > ! spoiler quote).

É preferível que os envios sejam executáveis ​​e quebráveis ​​no TIO . Os envios não executáveis ​​ou quebráveis ​​no TIO são permitidos, mas inclua instruções para fazer o download / executá-los.

Faça sua entrada determinística e uniforme em todas as execuções. Veja esta meta post para detalhes.

Por favor, não "implemente o RSA" ou algo que signifique para os ladrões. Use idiomas e recursos obscuros, sem criptografia e hash chatos. Não posso impor isso com regras, mas você pode esperar votos em queda torrenciais se tudo o que você faz é sha(input) === "abcd1234".


1 Supondo que o computador não seja desligado, quebre, seja envolvido pelo sol, superaqueça com a morte por calor do universo ou atinja o tempo limite do TIO nos anos 60.

2 O programa deve parar em pelo menos uma entrada. Contanto que ele faça loops para sempre em uma entrada e pare em outra, funcionará.

3 Deve ser <60 segundos, para que o código possa ser testado no TIO.


Procurando envios sem rachaduras?

fetch("https://api.stackexchange.com/2.2/questions/135363/answers?order=desc&sort=activity&site=codegolf&filter=!.Fjs-H6J36vlFcdkRGfButLhYEngU&key=kAc8QIHB*IqJDUFcjEF1KA((&pagesize=100").then(x=>x.json()).then(data=>{var res = data.items.filter(i=>!i.body_markdown.toLowerCase().includes("cracked")).map(x=>{const matched = /^ ?##? ?(?:(?:(?:\[|<a href ?= ?".*?">)([^\]]+)(?:\]|<\/a>)(?:[\(\[][a-z0-9/:\.]+[\]\)])?)|([^, ]+)).*[^\d](\d+) ?\[?(?:(?:byte|block|codel)s?)(?:\](?:\(.+\))?)? ?(?:\(?(?!no[nt][ -]competing)\)?)?/gim.exec(x.body_markdown);if(!matched){return;}return {link: x.link, lang: matched[1] || matched[2], owner: x.owner}}).filter(Boolean).forEach(ans=>{var tr = document.createElement("tr");var add = (lang, link)=>{var td = document.createElement("td");var a = document.createElement("a");a.innerHTML = lang;a.href = link;td.appendChild(a);tr.appendChild(td);};add(ans.lang, ans.link);add(ans.owner.display_name, ans.owner.link);document.querySelector("tbody").appendChild(tr);});});
<html><body><h1>Uncracked Submissions</h1><table><thead><tr><th>Language</th><th>Author</th></tr></thead><tbody></tbody></table></body></html>


1
@LuisMendo assumindo memória infinita é bom
programmer5000

1
@ programmer5000 Obrigado por esclarecer. Você deve incorporar tudo isso ao texto do desafio. Não é esperado que os respondentes leiam todos os comentários
Luis Mendo

6
Podemos restringir a entrada para, digamos, um número inteiro? Um ladrão pode passar alguma entrada malformada ou digitada incorretamente para finalizar o programa imediatamente. Eu precisaria fazer muita validação cuidadosa de entrada ou usar uma linguagem que possa detectar erros arbitrários.
Xnor

3
@ xnor Acho que você deve fazer a verificação de entrada.
24517 Stephen

1
@StepHen Isso funciona se a entrada malformada ainda puder ser analisada pelo intérprete. Se eu digitar uma string ilegal, Rerros imediatamente, sem sequer entrar na função de crack. Eu argumentaria que isso não conta como realmente encerrando a função.
26417 JAD

Respostas:


55

Malbolge, 128 bytes, quebrado por KBRON111

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhVfddRb`O;:('JYX#VV~jS{Ql>jMKK9IGcFaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

Diverta-se!

(Sim, eu aprendi Malbolge apenas por isso. Sim, demorou um tempo absurdamente longo para finalmente começar a trabalhar. E sim, valeu totalmente a pena.)

Embrulhado, para que você possa vê-lo na íntegra, er, "glória":

(=&r:#o=~l4jz7g5vttbrpp^nllZjhhV
fddRb`O;:('JYX#VV~jS{Ql>jMKK9IGc
FaD_X]\[ZYXWVsN6L4J\[kYEhVBeScba
%_M]]~IYG3Eyx5432+rpp-n+l)j'h%B0

Eu usei esse intérprete para testá-lo; Não tenho certeza se isso importa, mas achei que especificaria apenas por precaução.


2
Esse é o intérprete que o TIO usa.
Dennis

2
oh, "Divirta-se" é um bom complemento #
30517

26
Você é um idiota. Malbolge é mau.
Draco18s

1
Estou carimbado ... O mais longe que cheguei: das 13 entradas antes da parada, apenas a primeira e a terceira têm algum impacto. Depois de engenharia reversa minuciosa, descobri que primeira entrada tem de ser 6e o terceiro é um dos quatro: !, #, /e -. Mas a combinação não parece consertar a parada. Coloquei aqui, talvez alguém mais inteligente encontre uma solução. Se alguém quiser, vou postar amanhã como cheguei a essas entradas. EDIT: Agora que penso nisso, meu programa que escrevi com o objetivo de engenharia reversa pode ter um bug, e a primeira entrada pode ser outra coisa que não 6. O terceiro personagem ainda está de pé.
Grzegorz Puławski


23

JavaScript (ES6), 17 bytes, Cracked

x=>{for(;x==x;);}

No TIO, como não sei como executar o readline do Node.js no TIO, basta inserir a entrada na chamada de função. Isso é óbvio para quem sabe, e não para quem não conhece.

Experimente online!

Responda:

A resposta é NaN, já que em JavaScript NaN != NaN,.


2
Rachado . Bom uso de uma singularidade de idioma!
programmer5000

3
Você aposta :) Eu gosto de como você estava tão confiante que foi o que eu escolhi que você editou para mim: P
Stephen

12
NaN == NaNé falso em muitos idiomas além do JavaScript. Eu não chamaria isso de "estranheza linguística".
Nayuki

9
eu acredito NaN != NaNé uma característica de números de ponto flutuante
undergroundmonorail

1
@undergroundmonorail: Está correto. A relação entre dois números de ponto flutuante IEEE pode ser acima, igual, abaixo ou não ordenada . O resultado da comparação não é ordenado se um ou ambos os operandos forem de qualquer tipo de NaN. (O ponto flutuante binário IEEE 754 possui muitos padrões de bits NaN : qualquer coisa com o expoente all-ones e uma mantissa diferente de zero é um NaN, independentemente do bit de sinal. Existem algumas regras para as quais o que entra na "carga útil" de um NaN, e para propagar que através de operações como +ou max(), mas a maioria das pessoas não se importam: P)
Peter Cordes

14

JS (ES6), 67 bytes ( rachado )

(x,y)=>{while(x!==y||Object.is(x, y)||!isFinite(x)||!isFinite(y));}

Eu acho que não errei, pode ter uma solução fácil que eu não vi.

Agradeço qualquer feedback, este é um dos meus primeiros posts

(+0, -0) Sim, js tem um 0 negativo



Percebo agora que eu não preciso verificar se xe ysão finitos, mas não vou editar uma vez que já estava rachado. Poderia ter sido 38 bytes
Juan Tonina


9

Javascript (NÃO node.js)

x=>{while(x+"h");}

A submissão desejada não usa throw.

Dica para a rachadura desejada:

O envio desejado não substitui .toString()ou usa Set()qualquer um.

Rachadura desejada:

Object.create(null)


Ligação de crack correta (não a minha, apenas um link para a resposta de Dom Hasting)
Stephen

Rachado # 2 Rachado sem usar throw(embora ainda dê um erro) #
Grant Davis

Rachei novamente sem usar throw, creio que desta vez real, pois Grant Davis 'não funcionou para mim. Ainda TypeErrors.
Haumed Rahmani

2
Você pode fazer x=>{try{for(;x+"h";)}catch(e){for(;;)}}isso para que qualquer erro resulte em um loop infinito, para que erros de função de protótipo ausentes (ou quaisquer erros) resultem em um loop infinito.
Grant Davis

1
Este funciona apenas no navegador, mas não sei por que: D
jadkik94

8

C (gcc) , 75 bytes Cracked

#include<stdio.h>
int main(){char c[9];while(1){scanf("%8s",c);printf(c);}}

Experimente online!

Eu nunca publiquei um policial e ladrão antes. Espero que isso não seja muito óbvio.

Solução:

Uma entrada de "% s" torna esse segfault. Existem vários outros que podem ser usados; todos eles são printfespecificadores como "% n"
Esta é a printfvulnerabilidade clássica . Simplificando, a string de formato vem diretamente da entrada do usuário, para que qualquer printfespecificador seja repassado, sem segurança.



8

JavaScript (no navegador), 79 bytes Cracked

x=>{try{for(;x||x!=null||x!=void 0||x===null||x===void 0;);}catch(e){for(;;);}}

Você deve executá-lo em um navegador recente (como o Firefox ESR mais recente, o Firefox mais recente, o Chromium mais recente). A execução em navegadores antigos (como o Netscape 2, IE 4) não conta.

Nota: Interrompido pelo navegador devido ao tempo limite, não conte uma parada aqui.

Sempre tenha cuidado para não travar o navegador ao testar esses códigos e roubar feliz ^ _ ^

document.all


Posso usar o setTimeout?
2241717 ЕЕге

@ ЕвгенийНовиков Você pode chamar esta função com qualquer parâmetro. Mas parece que o uso setTimeoutcomo parâmetro não funciona.
tsh

a idéia é fazer var key=(()=>{setTimeout(args);return null})()e então #crackme(key)
30517

parece estar trapaceando #
30517



6

Casca , 5 bytes Rachada

↑ε∞←ø

Experimente online!

Um pouco de explicação, já que esse idioma ainda é bem novo:

←øobtém o primeiro elemento de uma lista vazia: retorna um valor que pode assumir qualquer tipo, seja um tipo concreto ou uma função, que será aplicada à entrada. cria uma lista infinita composta por cópias do resultado anterior (que na maioria dos casos significa uma lista de zeros infinitos). ↑εretira elementos desta lista desde que sejam "pequenos", ou seja, seu valor absoluto é ≤1; em uma lista infinita de zeros, isso nunca para.


@Veedrac que era realmente a minha solução pretendida
Leo

Bem, então, rachado!
Veedrac


5

Ruby , 31 bytes ( quebrado por Eric Duminil )

0until(3.send(gets)==5rescue p)

Experimente online!

Observe que isso precisa ser executado em um ambiente onde não há nova linha final no resultado de gets, ou então é impossível fazê-la parar (eu acho), pois qualquer coisa que termine em uma nova linha irá errar e atingir o resgate.



Nice por sinal! Nenhum método 3.methodsretorna 5ou sai do loop.
Eric Duminil

Droga! Descobri a solução bem de forma independente, mas eu estava muito focado em tornar mais igual 5a pensar que a resposta correta envolveria a função que ele fez ...
Valor de tinta


5

Bash 4.2, 14 bytes ( quebrado )

Vamos tentar de novo.

let ${1,,}
yes

Isso não funciona no TIO, que usa o Bash 4.3. A entrada é via argumentos da linha de comando.

No Linux e com o gcc instalado, o Bash 4.2.53 pode ser baixado e compilado da seguinte maneira.

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

Rachado. Basicamente, acabei lendo a fonte.
Veedrac

4

Retina , 78 bytes ( Rachado ) ( Rachado com solução pretendida )

^
1
+`^1(1+)
$1¶$&
s`(?<=^|¶)(1+)(?=¶)(?!.*¶\1+$)

¶(?!1+$)

^(1+)¶\1$

+`1
11

Foi muito divertido de escrever, espero que seja divertido de quebrar

Experimente online!

Rachado com uma solução não intencional e a solução pretendida dentro de um minuto uma da outra. Um postado primeiro, um comentado primeiro.

Solução pretendida:

11111 ou a representação unária de n-1 onde n é qualquer número perfeito




Então, de quem é o crack? (Eu postei o crack em primeiro lugar, mas mbomb007 comentou primeiro)
Kritixi Lithos

@Cowsquack tanto
programmer5000


4

Java 8, 99 bytes, Rachado

s->{try{Integer i=Integer.parseInt(s),c=i+32767;i+=32767;for(;i!=c;);}catch(Throwable t){for(;;);}}

Este é um lambda do tipo Consumer<String>.

Ungolfed:

s -> {
    try {
        Integer i = Integer.parseInt(s), c = i + Short.MAX_VALUE;
        i += Short.MAX_VALUE;
        while (i != c) ;
    } catch (Throwable t) {
        while (true) ;
    }
}

Experimente online! (observe que o programa de teste falhará na entrada vazia, mas o lambda em si não o faria!) (também use 'argumentos' e não 'entrada' no TIO, pois o programa de teste usa argumentos, não STDIN)

Resposta pretendida:

-32767; Isso funciona porque o Java keep possui dois tipos inteiros, inte Integer. Integeré um objeto que envolve int. Além disso, Java mantém um cache de Integers que caixa -127através 127. O !=operador verifica a identidade; portanto, através de alguns casos de desempacotamento e encaixotamento automático, qualquer número em xque se x + 32767encontra [-127, 127]acabará sendo o mesmo Integerobjeto do cache e, portanto i != c, será falso.



4

Bash 4.2, 10 bytes ( rachado )

let $1
yes

Isso não funciona no TIO, que usa o Bash 4.3. A entrada é via argumentos da linha de comando.

No Linux e com o gcc instalado, o Bash 4.2.53 pode ser baixado e compilado da seguinte maneira.

curl -sSL https://ftp.gnu.org/gnu/bash/bash-4.2.53.tar.gz | tar xz
cd bash-4.2.53
./configure
make -j

1
Rachado. Você me levou em círculos pensando que isso estava relacionado ao shellshock e me ligou a uma versão corrigida: P. Contar o crack não intencional como vingança mesquinha;).
Veedrac

Heh, não exatamente o que eu estava procurando. Publiquei uma versão reforçada, se você quiser experimentá-lo.
Dennis19

3

Java: 1760 ( Rachado )

Eu sinto que é muito ruim jogar este, então apenas ofusquei os nomes das variáveis ​​e a deixei 'bagunçada'. Por uma questão de fato, é tão malvado que vou postar dicas ao longo do tempo, para que eu possa ver isso rachado.

Dica 1: isso tem entradas válidas teoricamente infinitas, mas há uma que é a mais 'correta'


public class Main {

	public static void main(String[] a) {
		try {
			while (a.length < 2) {
				int i = 0;
			}
			boolean invalid = 1 < 0;
			char l = '_';
			char h = '-';
			char[] DATATWO = a[0].toCharArray();
			char[] DATATOW = a[1].toCharArray();
			int length = DATATOW.length;
			if (DATATWO.length != length) {
				invalid = 1 > 0;
			}
			int transmissionStartIndex = 0;
			for (int i = 0; i < length; i++) {
				if (DATATWO[i] == l && DATATOW[i] == l) {
					transmissionStartIndex = i;
					break;
				}
			}
			int DATAONE = 0, reg = 0;
			boolean read = 1 < 0, full = 0 < 1;
			int bytes_read = 0;
			for (int i = transmissionStartIndex; i < length; i++) {
				if (DATATOW[i] == l && DATATOW[i + 1] == h) {
					bytes_read++;

					if (bytes_read == 8) {
						read = DATATWO[i] == h;
					} else if (bytes_read == 9) {
						invalid = (DATATWO[i] == h || invalid);
						System.out.println(invalid);
					} else if (bytes_read == 18) {
						System.out.println(invalid);
						invalid = (DATATWO[i] == h || invalid);
						if (invalid) {
							System.out.println("i36 " + DATATWO[i] + " " + h);
						}
						full = 1 > 0;
					} else if (bytes_read < 8) {
						DATAONE += (DATATWO[i] == h ? 1 : 0) << (7 - bytes_read);
					} else if (bytes_read < 18) {
						reg += (DATATWO[i] == h ? 1 : 0) << (8 - (bytes_read - 9));
					} else if (bytes_read > 18) {
						invalid = 1 > 0;
					}
					System.out.println(a[0]);
					System.out.println(new String(new char[i]).replace("\0", " ") + "|");
					System.out.println(a[1]);
				}
			}

			while (!(Integer.toHexString(DATAONE).equals("0x2b") && (read)
					&& Integer.toHexString(reg).equals("0xa6"))) {

				System.out.println(System.currentTimeMillis());
				try {
					Thread.sleep(1);
				} catch (InterruptedException e) {
					e.printStackTrace();
				}
			}

		} catch (Exception e) {
			while (true) {
			}
		}

	}
}

Experimente online!


Dois argumentos vazios parecem funcionar
Okx

Além disso, importa adicionar um link tio? Eu acho que tudo o que você precisa fazer é mudar principal para Principal
Okx

1
Rachado , além de um bug.
user3033745

Rachado - nenhum erro específico da versão.
Okx

3

Braingolf , 18 bytes Rachado

1+[#£-0!e>:$_1>|]

Experimente online!

Liiiitle um pouco mais difícil do que o último, vou começar a escrever um real depois disso

A resposta é 163


Cara, este é provavelmente o único atm de submissão sobrevivente. Nota: inão funciona.
Erik the Outgolfer

Aviso: na verdade, são 19 bytes ( £). E por que não -1funciona? Isso é complicado.
Erik the Outgolfer

@EriktheOutgolfer Tem 17 caracteres e 18 bytes.
totallyhuman

@totallyhuman Eu juro que tinha lido "19 bytes UTF-8, 18 caracteres" (o script de usuário está ativado) ...
Erik the Outgolfer


3

JavaScript (ES7), 41 bytes ( invadido e quebrado )

Edit: corrigido para impedir que ele falhe quando não recebe nenhuma entrada (obrigado @totallyhuman por perceber)


Provavelmente existem várias soluções, mas a esperada é relativamente simples.

(x=0)=>{for(;~x/x.length**3!=-2962963;);}

Solução pretendida:

"8e7" (um número na notação científica transmitida como uma seqüência de caracteres)
Porque: ~ "8e7" / "8e7" .length ** 3 = -80000001 / 3 ** 3 = -80000001/27 = -2962963


2
Nenhuma entrada funciona nessa também, mas não quero incomodá-la dessa maneira ... A menos que seja a solução pretendida. : P
totallyhuman

@totallyhuman Bem, é não a solução pretendida. :-)
Arnauld


2
Atualização: foi planejada uma solução com 3 bytes de comprimento
24517

3

Bash + Utils (rachado por Dennis), 74 bytes

Espero que você goste de alcatrão, porque é o único utilitário que você pode usar.

cp /bin/tar .
env -i PATH=$PWD I=$? /bin/bash -r -c "$1"
while :;do :;done

Experimente online!

Rachadura pretendida

tar -cf --checkpoint=1 --checkpoint-action=exec="/bin/kill $I" .



@Dennis Nice! Publiquei o crack pretendido, que era um pouco mais complexo.
Sísifo

3

Mathematica, 36 26 bytes ( quebrado )

#0[#;$IterationLimit=∞]&

Um loop muito curto #0[#;∞]que continuará sendo executado repetidamente até travar o kernel ... (O $IterationLimité apenas para garantir que você fique preso para sempre na maioria das entradas).

Experimente na Wolfram Sandbox! - se você estiver preso em um loop infinito, poderá esperar até atingir o tempo limite ou pressionar o ícone quadrado "anular avaliação" à esquerda do título do notebook (unnamed).

NOTA : esta função altera suas $IterationLimitconfigurações.




3

C #, 118 bytes ( rachado )

using System;_=>{while(1>0){try{if(Nullable.GetUnderlyingType(Type.GetType(Console.ReadLine()))!=null)break;}catch{}}}

Não espero que isso dure muito tempo, mas é mais estranho do que parece.

Basicamente, qualquer aulas anuláveis nome completo funciona, mas é estranho para descobrir como ele se parece com o abaixo:
System.Nullable`1[[System.Int32, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089]]
Uma maneira mais fácil de encontrar essa seqüência de fora é fazer typeof(int?).FullName.



3

C, 140 bytes ( rachado )

n,i;f(){float x,y,z;for(scanf("%d %d",&n,&z,x=y=0);~((int)x-(int)(1/sqrt(y*2)));x*=(1.5-y*x*x))y=(x=z)/2,i=n-((*(int*)&x)/2),x=*(float*)&i;}

Esperamos que não haja muitas entradas nem mesmo próximas às planejadas, o que interrompe, mas vamos ver.

Experimente online!



3

JavaScript (ES7), 73 bytes ( Rachado !)

q=>{r=(n,i=0)=>i>1e3?n:r(n*16807%(2**31-1),i+1);while(r(q)!=627804986){}}

Soluções não desejadas: força bruta. O crack desejado envolve matemática.

Observe que existem muitas soluções (4194304) devido ao módulo.



3

brainfuck , 170 bytes rachados!

>>,>,>,>,>,[-----------<-<+<--<--->>>>]<++<<+<++[----->+<]>[----------------->+++++++<]>[----->>+<<]>>[-<->]<[--->++++++<]>[--->+<]+>-[-----------------<+>]<[-->-<]>+[+-]

Experimente online!


Bem vindo ao site! Você pode salvar 11 bytes removendo as novas linhas do seu código.
Wheat Wizard

Eu esqueci que era código de golfe, obrigado!
Jerry


Solução válida! Eu estimo que existem muitos deles. Para quem resolve / força bruta, o pretendido é [az].
30517 Jerry

Para cada 4 caracteres, há exatamente 1 valor do último caractere que interrompe o programa. Portanto, existem 256 ^ 4 = 4294967296 soluções assumindo que você pode entrar nulno cérebro. BTW você pode remover dois primeiro >salvar 2 bytes.
user202729

3

JavaScript ES6 (Node.js> = 6.0) , 326 bytes (Seguro)

((v,e=require('events').EventEmitter.prototype,l=_=>{while(1);},P=Proxy,p=process)=>(p.kill=p.exit,e.listeners=new P(e.listeners,{apply:(t,c,a)=>a[0]=='exit'?[]:t.apply(c,a)}),e.removeAllListeners=new P(e.removeAllListeners,{apply:(t,c,a)=>a[0]=='exit'?c:t.apply(c,a)}),p.on('exit',l),i=>{try{v(i)}catch(o){}l()}))(s=>eval(s))

Muito mais simplificado do que meu outro desafio , não estou mais tentando ofuscar a abordagem da solução, o que me salvou muitos bytes. Desta vez, process.kill()não funcionará.

"delete process._events.exit;process.exit()"

Experimente online!


Woah! Bom trabalho!
programmer5000

Parece que você é o vencedor, embora eu estava esperando um código hehe muito mais curto
Piyin

3

Swift 3, 14 bytes ( rachado )

while !false{}

Para resolver isso, coloque seu código antes ou depois desta declaração.

  • Sua solução deve:
    • mantenha esta declaração intacta, sem modificar seu código
    • na verdade, deixe essa declaração executar
      • Basta comentar, ligar fatalError(), etc., antes que não conte.
    • modifique o comportamento desta declaração para impedir que ela faça um loop para sempre
  • A solução não envolve travar o programa.

Não conheço o Swift, mas acho que adicionar um cronômetro antes desse código para sair após alguns segundos atenderia aos critérios.

@Yimin heh, inteligente, mas não modifica a semântica desta declaração, que é o que eu estava procurando realmente quando eu disse "modifica o comportamento desta declaração"
Alexander

Tem certeza de que a solução funciona? O intérprete está gritando ambiguous semanticscomigo.
Daniel

@ Dopapp é o que eu pensei que aconteceria na minha tentativa anterior. Por alguma razão, é legal redefinir novos operadores de infix com as mesmas assinaturas de tipo daqueles que já existem, mas tentar fazer o mesmo com um operador unário gera um erro de ambiguidade de tempo de compilação. Isso é intencional, e tenho certeza que eu tenho uma solução de trabalho
Alexander


2

cQuents , 2 bytes ( Rachado 1 ) ( Rachado 2 )

:A

Observe que isso atingirá rapidamente o limite de saída de 128 KiB no TIO, fazendo com que ele pare, mas quando executado localmente, ele fará um loop para sempre, exceto na entrada que o interrompe. Encontrar essa entrada deve ser bastante fácil. Até que você faça isso, :Acontinuará apontando a língua triangular para você.

Observe também que isso deve ser justo, Amas quebrei os modos implícitos ontem à noite. Em versões antigas de intérpretes A, funcionaria bem.

Rachaduras:

Entrada vazia / nova linha na entrada é um crack válido. No entanto, exceto que, ao passar várias entradas (separadas por espaço) para o programa, você a encerrará (se você fornecer 2) ou ocorrerá um erro (se você fornecer 3 ou mais).

Experimente online!


Rachado? (Os erros fora com entrada de vazio)
Luis Mendo


@ crackers sim, isso é um crack válido. Vou dar o meu voto positivo a alguém que encontrar o crack de entrada não vazia, no entanto.
Stephen

Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.