Cree un programa que genere una cadena hello world ("Hello world", "Hello, World", etc.) y el código fuente. La salida se escribe en stdout o equivalente. La cadena Hello World está incrustada en el código fuente.
Por ejemplo, la salida para podría ser
(some source code here)hello world(some source code here)
Cuando la salida se compila o se vuelve a interpretar, debe crear una salida similar, pero la cadena hello world debe tener una puntuación o mayúscula diferente. Por ejemplo, el ejemplo anterior podría crear el siguiente resultado
(some source code here)hello, wORld(some source code here)
Cada "(algún código fuente aquí)" en estos ejemplos puede cambiar después de cada ejecución, o puede ser el mismo.
Su salida debe contener una cadena válida de hello world exactamente una vez. Puede contener cualquier cantidad de cadenas inválidas de hello world. El código fuente puede contener cualquier cantidad de comentarios, y la cadena hello world puede estar incrustada en los comentarios. El primer programa puede tener cero o una cadena válida de hello world, pero no más.
La siguiente puntuación es válida:
hello, world
hello world
helloworld
Cualquier capitalización es aceptable. Por ejemplo, estas son cadenas válidas de hello world:
Hello, world
hellO WORld
HELLoworlD
Estas cadenas no son válidas:
Hello world
Hello(newline)world
Hello,world
Hello, Steve
Su programa falla tan pronto como se cumpla una de las siguientes condiciones:
- Produce una cadena hello world que se ha generado durante alguna ejecución anterior,
- la salida ya no es código fuente válido en el mismo idioma, o
- la salida no contiene exactamente una cadena válida de hello world.
Su programa no es válido para este concurso a menos que al menos dos primeras ejecuciones sean exitosas. Esto significa que la tercera salida puede ser inválida. La salida de su programa puede no ser aleatoria. La primera ejecución siempre debe crear la misma segunda salida, la segunda ejecución siempre debe crear la misma tercera salida, etc.
La puntuación se calcula como la cantidad de bytes en el código fuente del programa inicial. La puntuación más baja gana.
Se aplican los siguientes bonos (hasta -60%):
- -5% * (N - 2), donde N es el índice de la ejecución después de la cual su programa produce resultados no válidos. Este bono se limita a -50%. Si su programa tiene éxito 12 veces o más, obtendrá el bono máximo.
- -10%, si sus salidas (incluido el primer código fuente) incluyen las tres alternativas de puntuación válidas.
Su envío debe incluir el primer código fuente, y también debe contener los resultados de las ejecuciones exitosas. Si su programa tiene éxito más de 12 veces, agregue la salida para 12 ejecuciones.
Ejemplo
La siguiente línea es el primer código fuente. Cuando lo ejecutamos, es la primera ejecución.
hello world(some source code here)
La siguiente línea es la salida del primer código de código fuente. Es la primera salida.
hello, world(some source code here)
La siguiente línea es la salida de la segunda ejecución. Es la segunda salida.
helloworld(some source code here)
Cuando ejecutamos la primera salida, este programa se convirtió en elegible para el bono de -10%. Eso significa que tenemos dos salidas y un código original, que tienen diferentes puntuaciones. Además, debido a que la segunda salida fue válida, este programa es elegible para este concurso.
La siguiente línea es la salida de la tercera ejecución. Es la tercera salida.
Helloworld(some source code here)
La siguiente línea es la salida de la cuarta ejecución. Es la cuarta salida.
hellworld(some source code here)
Esta salida fue inválida. El índice de la última ejecución válida fue 4. Este programa es elegible para un bono de -5% * (4 - 2) y un bono de -10% de la puntuación. Esto hace un total de -20%. La longitud del primer código fuente ("hola mundo (aquí está el código fuente)") fue de 34 bytes, por lo que el puntaje final es 27.2.
hello world
?