Google code jam: ¿impossible?

Este sábado 8 de abril participé en el concurso para programadores Google code jam, que consiste en ir resolviendo problemas algorítmicos utilizando el lenguaje de programación que quieras.

Este año no fue el primero en el que participo en este concurso. Lo que he hecho diferente este año ha sido el utilizar Python en vez de Java, que es el lenguaje de programación que utilizo habitualmente.

La experiencia ha sido muy buena porque como comenté en el artículo anterior, Python te permite el enfocarte en el problema a resolver sin tener que preocuparte por cómo utilizar el lenguaje.

Todos los ejercicios requieren que leamos y escribamos ficheros y resuelta muy fácil con Python. Además la mayoría de los ejercicios tratan de manejar cadenas de caracteres, números binarios y cadenas de objetos y Python es perfecto para ello.

 

La primera ronda consiste en obtener 25 minutos resolviendo ejercicios. Cada ejercicio tiene sus puntos. Había cuatro ejercicios y cada uno con al menos dos partes. La diferencia entre la primera y la segunda es que la segunda debe de estar optimizada para resolverse de forma rápido porque sino no podrás obtener el fichero de salida en el tiempo estimado (creo que son 4 minutos).

Los ejercicios los puedes ver en el enlace siguiente:

https://code.google.com/codejam/contest/3264486/dashboard

 

Me enfoqué en los dos primeros ejercicios porque me parecieron más fáciles al leerlos y me permitían el superar la prueba si los sacaba a tiempo.

El primero se me atragantó y subí varias soluciones que no fueron las acertadas. Al comprobar detenidamente el resultado me dí cuenta que había deletreado mal impossible y que por eso había fallado, al menos en los dos últimos intentos. Esa es la razón por la que he puesto en el título impossible.

Supuré la ronda y ahora toca pasar la primera ronda que consiste en estar entre los mejores 1000 dentro de una de las tres pruebas programadas: Round 1A, Round 1B y Round 1C.

Desearme suerte 🙂

 

Si tienes curiosidad de como resolví los dos problemas a continuación puedes verlo: