Suscríbete a dotNetMania y consigue números anteriores


El reto de Chuck Norris

Published 13 November 07

Chuck NorrisUn importante proyecto de decodificacion de mensajes para el gobierno que fue desarrollado por el mismisimo Chuck Norris (que escribe cualquier programa en una sola linea) necesita ser puesto en marcha lo antes posible.

Lamentablemente, Chuck Norris eliminó del control de codigo fuente su libreria de utilidades antes de irse de la empresa para probar nuevos retos, por lo que el código ya no compila.

Es necesario que alguien reconstruya las partes necesarias de esta libreria para volver a hacer funcionar el decodificador.
Una pista, nadie hace librerias tan simples como Chuck Norris.

Ánimo.

Console.WriteLine(
new long[]{
292805444303323170,
-4455112766532738942,
579137309091315972,
1207248581508040306,
7033655460037132288 }
.SelectMany(l => 64.DownTo(0)
.Select(i => (l & ((long)1 << i)) != 0))
.Take(285)
.Select((b, i) => new { b, i })
.GroupBy(p => p.i / 3, p => p.b)
.Select(g => g.ToArray())
.Select(a => 0.To(3)
.Sum(i => a[i] ? (1 << (2 - i)) : 0))
.Select((a, i) => new { c = @`` _()|/`\,``[a], i })
.GroupBy(p => p.i / 19, p => p.c)
.Select(g => new string(g.ToArray()))
.Aggregate((s, t) => s + ``\r\n`` + t));

public static class ExtensionesChuckNorris
{
public static IEnumerable<int> To(this int a, int b)
{
//TODO: Completar código
}
public static IEnumerable<int> DownTo(this int a, int b)
{
//TODO: Completar código
}
}


NOTA IMPORTANTE: La función a decodificar, tiene dobles comillas (4 veces), pero que están implementadas como 2 comillas simples... cambiar cuando se quiera probar o ejecutar el decodificador escrito.
Están aquí:
.Select((a, i) => new { c = @`` _()|/`\,``[a], i })
y aquí:
.Aggregate((s, t) => s + ``\r\n`` + t));

 

Información relacionada  y descripción de la oferta de empleo

Comments

No Comments

Leave a Comment

(required) 
(required) 
(optional)
(required) 

Enter the numbers above: