Su tarea, si la acepta, es escribir un programa que ayude a comprender mi propuesta sobre meta calculando al ganador de una competencia de código invertido en golf . Por supuesto, las respuestas a esta pregunta se tratarán como propuestas, por lo que su programa (si es correcto) puede calcular si su respuesta se convertirá en la respuesta aceptada.
Reglas
- El programa lee un archivo con varias líneas del siguiente formato (ver ejemplo a continuación): [Idioma] TAB [NumberOfCharacters] TAB [LinkToAnswer]
- El nombre del archivo se pasa como argumento a su programa o el archivo se redirige a la entrada estándar de su programa. Es su elección, mencione el método al dar la respuesta
- Se espera que el formato de entrada sea correcto. No hay necesidad de manejo de errores.
- El número de caracteres es positivo. Su programa debe manejar longitudes de hasta 65535. 64k debería ser suficiente para todos :-)
- El programa genera esas líneas en la salida estándar que cumplen con la idea de la meta propuesta, es decir
- gana el código más corto de un lenguaje de programación particular (fase de reducción)
- gana el código más largo entre todos los lenguajes de programación (fase de clasificación)
- en caso de empate, se imprimirán todas las respuestas con la misma longitud
- El orden de salida no es importante
- Aunque el código más largo gana, esto no es código de boliche . Su código debe ser lo más corto posible para su lenguaje de programación.
- Las respuestas sobre lenguajes de programación que rara vez no intentan acortar el código merecen un voto negativo, porque intentan evitar la intención de este tipo de preguntas. Si solo hay una respuesta para un lenguaje de programación específico, se consideraría un candidato ganador, por lo que podría comenzar a soplar su código.
Ejemplo de archivo de entrada (separado por pestañas individuales si hubiera algún problema con el formato):
GolfScript 34 http://short.url/answer/ags
GolfScript 42 http://short.url/answer/gsq
C# 210 http://short.url/answer/cs2
Java 208 http://short.url/answer/jav
C# 208 http://short.url/answer/poi
J 23 http://short.url/answer/jsh
Ruby 67 http://short.url/answer/rub
C# 208 http://short.url/answer/yac
GolfScript 210 http://short.url/answer/210
Salida esperada (el orden no es importante):
C# 208 http://short.url/answer/poi
C# 208 http://short.url/answer/yac
Java 208 http://short.url/answer/jav
Actualizar
Algunos programas se basan en el hecho de que hay un solo máximo (como el programa de caracteres C # 210). Derivado de la realidad, alguien también puede escribir un programa GolfScript con 210 caracteres. El resultado sería el mismo. He agregado un GolfScript a la entrada.
Actualización 2
Como sugerí, volví a etiquetar (todavía en código de golf también) y la fecha límite es 2014-03-06 (que parece una fecha arbitraria, pero volveré a Alemania después de viajar).
Resultados finales
Decidí votar de la siguiente manera:
- Las respuestas en las que no se puede confirmar el número de caracteres reciben un comentario para explicar el recuento.
- Las respuestas que se pueden reducir fácilmente obtienen un comentario, una sugerencia de edición y van al resultado con el valor de conteo más bajo. (Espero haberlo visto de antemano).
- Las respuestas que no se compilan obtienen un voto negativo. (Resulta que es una tarea difícil).
- Las respuestas que no son de golf reciben un voto negativo (como ya se describe en las reglas).
- Las respuestas que producen el resultado esperado obtienen un voto positivo. Debido a algunas respuestas que no funcionan como se esperaba, utilizo 4 archivos de entrada diferentes y compruebo el resultado esperado.
Finalmente, el ganador se determina al proporcionar la tabla de respuestas de calificación como entrada para mi programa de referencia (además de verificar el resultado manualmente). Si mi propia respuesta fuera la ganadora, la excluiría de la lista. En caso de varios ganadores, tendría que elegir solo uno. Por lo tanto, se pueden ganar algunos bonos:
- respuestas que aceptan más información de la esperada (por ejemplo, fuera de los rangos definidos)
- respuestas que usan una idea inteligente de hacerlo corto
Tomé una instantánea de las respuestas el 6 de marzo de 2014, 19:45 UTC + 1. El análisis está en curso. Comprobar todas las respuestas es más difícil de lo esperado ...