miércoles, mayo 21, 2008

Google Treasure Hunt 2008

Treasure Hunt es un concurso diseñado para probar las habilidades en la solución de problemas de ciencias de la computación, redes, y programación de bajo nivel.

Me enteré sobre este concurso hace poco más de una hora, de "letras" de mi amigo Ramiro Rebolledo. Lamentablemente el concurso se encuentra en su segunda fase, pero de todas maneras me inscribí y, con la ayuda de ramrebol en las matemáticas, resolví el puzzle correspondiente a esta semana, disponible en http://treasurehunt.appspot.com/.

El problema consistía en, a partir de un archivo zip descargado del sitio del concurso, sumar ciertas cifras contenidas en diversos archivos que compartían un patrón determinado, ya sea en su ruta o en su nombre.

Una modesta solución, que se puede mejorar con un buen script en bash, es la siguiente:
find . | grep abc | grep .rtf

Lo anterior, ejecutado en el directorio que contiene los archivos entregados por Google, produce un resultado con todos los archivos que, en su ruta o en su nombre, contienen abc, y que su extensión sea .rtf. Luego ya se puede usar more para ver el contenido de cada archivo. Como dije anteriormente, esta última parte se puede automatizar con un script, o un pequeño programa en algún lenguaje "a gusto del consumidor".

Estos fueron mis resultados:

Your question: 2 sums from 5760622739378519484.zip: line 2 in *zzz*.js, line 4 in *abc*.rtf
Your answer: 2024665362
Time received: 2008-05-21 04:03:03.258807 UTC

Correct answer: 2024665362
Your answer was: Correct


El próximo puzzle aparecerá 936266827 segundos antes de Y2K38, para los que estén interesados en participar.