Practicando para la OMI en omegaUp

Si estás practicando para la Olimpiada Mexicana de Informática 2014, omegaUp tiene disponibles los exámenes nacionales desde el 2009 para que intentes resolverlos. Aquí están los enlaces a los concursos de práctica

Nuevamente agradecemos a Kuko Lopez de la OIEG por ayudarnos a subir los problemas del 2009 al 2011.
Que se diviertan!

 

 

38 nuevos problemas de Karel disponibles gracias a la OIEG!

La Olimpiada de Informática del Estado de Guanajuato (OIEG), liderada este año por José Refugio López (Kuko), han hecho públicos 38 problemas de Karel para que la comunidad en general pueda practicar previo a la Olimpiada Mexicana de Informática 2014. 

Pueden resolver los nuevos problemas en los siguientes concursos:

Nivel introductorio:

Nivel básico

Nivel intermedio

Introducción a Omegaup, parte 2 – Problemas básicos

Hola de nuevo. Continuando con la serie Introducción a Omegaup, esta vez vamos a hacer referencia a los problemas más sencillos de la plataforma a la fecha. Aquí se encuentra la parte 1 de esta serie.

Para estos problemas, no se requiere conocer una técnica o un algoritmo en específico: simplemente requieren implementar (o simular) lo que se describe en el problema o hacer una o dos observaciones relativamente sencillas que permiten simplificar la implementación o acortar el número de operaciones que tu programa tendría que hacer y con ello poder resolver el problema dentro de los límites.

Material de estudio

Antes de pasar a la lista de problemas, quiero empezar con las lecturas recomendadas para empezar a resolver problemas en omegaUp:

Problemas directos
Estos concursos fueron diseñados para familiarizarse con la programación competitiva en general. Son excelentes para empezar y su solución generalmente no requiere dominar una técnica en específico, más bien requieren saber usar las construcciones (ciclos, condiciones, etc…) del lenguaje correctamente:

Tienes más sugerencias de problemas o dudas sobre los existentes? Escríbelos en los comentarios.

Solución a “Super Nieves Bros”

Concurso: Preselectivo para la IOI 2014, Etapa 1, Problemset 6
Fuente: Topcoder

Este problema es una adaptación del problema ArcadeManao que apareció en el SRM 576 (Abril 2013) de Topcoder. Los detalles de la solución explicada la pueden en el respectivo Match Summary.

La idea general de este problema es muy sencilla: En base a los límites, la primera observación es que el mapa no es muy grande y en el peor caso, la escalera más alta es de tamaño 50. Hay que notar que no nos piden la ruta más corta para capturar la moneda, más bien cuál es el menor tamaño con el que podemos llegar.

La idea principal es ir probando los tamaños de escalera, empezando desde 0 hasta 50, y para cada tamaño probar si es posible llegar a la moneda o no. Si empezamos probando los tamaños de menor a mayor, la primer escalera que lo logré será el resultado.

Para probar que se puede llegar a la moneda, se puede usar búsqueda en amplitud o búsqueda en profundidad. Dado que el tamaño del mapa es relativamente pequeño, es posible usar búsqueda en profundidad y pararla en cuanto “pisemos” la moneda (de nuevo, no nos interesa saber si la ruta que la búsqueda siguió para dar con la moneda fue la menor de todas las posibles, con llegar a ella basta).

Este par de observaciones son suficiente para resolver el problema. Si el lector quiere más reto, hay otra observación que permitiría reducir el número de búsquedas que hay que hacer de 50 a 6…

Esta es la solución de charlyhlms usando búsqueda en profundidad.

Esta es la solución de spleensarethebest usando búsqueda en amplitud y optimizando la cantidad de pruebas de tamaños de escaleras que hay que hacer.

Solución de “El Concierto de Dr. Lira”

Concurso: Preselectivo para la IOI 2014, Etapa 1, Problemset 13
Fuente: Topcoder

El Concierto de Dr. Lira es una adaptación al problema Changing Sounds que apareció en el SRM 366 (2007, ya llovió) en TopCoder. La solución explicada la pueden encontrar en el Match Summary (necesitan registrarse en omegaUp para verlo).

Les dejo la implementación de spleensarethebest como un muy bien ejemplo de solución a este problema. Cualquier duda, déjenos un comentario.

Solución a Las Cartas del Dr. Lira

Concurso: Preselectivo para la IOI 2014, Etapa 1, Problemset 1
Autor: Joemmanuel Ponce Galindo
Fuente: Topcoder

Básicamente lo que nos pide el problema es encontrar el número de cartas que son distintas entre la configuración que es dada como entrada y una configuración donde las cartas estén alternadas.

Cómo se explica en el problema, sólo hay 2 estados posibles en los que una carta puede estar: negro (B) y blanco (W). En otras palabras, la observación clave para resolver el problema es darse cuenta que sólo existen 2 configuraciones que cumplen con las reglas que necesita Dr. Lira: Una configuración donde la primer carta es W, la siguiente B, la siguiente W y así sucesivamente. La otra configuración posible es donde las cartas empiezan con B, forzando la siguiente carta a ser W y esta a su vez forzando la siguiente carta a ser B.

Contar el número de caracteres diferentes entre una cadena y otra sólo requiere de un ciclo, por lo que la complejidad es lineal con respecto al tamaño de la cadena. Lo único que tenemos que hacer es entonces comparar la cadena dada como entrada con las configuraciones BWBW.. y WBWB…, contar el número de diferencias y dar como salida el mínimo de estos números.

Iniciando milestone en OmegaUp: Karate Kid

Después de año y medio de desarrollo (en nuestros tiempos libres) y de finalmente ser la plataforma de concurso en 3 de los eventos de programación más importantes de México ( Olimpiada Mexicana de Informática OMI, Concurso Nacional de Programación CONACUP y el Concurso Universitario de Programación de Aguascalientes CUPA)  hemos decidido graduar nuestro motor de evaluación y concursos para invertir más tiempo en la usabilidad del sitio como plataforma de aprendizaje en un nuevo milestone: Karate Kid.

Durante este nuevo milestone concentraremos nuestra energía en 3 escenarios principales:

  1. Que nuestros usuarios puedan usar OmegaUp como plataforma de entrenamiento. Actualmente el foco de OmegaUp ha sido soportar concursos en vivo, aunque hemos invertido en algunos features como el modo práctica.
  2. Que nuestros usuarios puedan medir su avance y compararlo con otros usuarios, con un toque divertido. No puedes mejorar lo que no puedes medir y para ello OmegaUp se encargará de encontrar el conjunto adecuado de estadísticas para ayudar a nuestros usuarios a mejorar.
  3. Que nuestros usuarios puedan armar y  arrancar sus propios concursos. Actualmente arrancar un concurso en OmegaUp aún requiere un poco de intervención manual de los administradores, aunque cada vez menos. Para que nuestro modelo escale, necesitamos mejorar nuestra administración y automatización.
Si tienes alguna idea relacionada con estas 3 áreas, nos gustaría escucharla. Puedes dejarnos un comentario en este post o escribirme un mail a joe [at] omegaup.com.
OmegaUps trabajando
OmegaUps trabajando: @_alanboy, @limitedmage, @lhchavez

OmegaUp sienta las bases para que concursos como el CONACUP puedan aumentar su cobertura escalando a varias sedes concurrentes y que concursos interestateles previos a Olimpiada de Informática se puedan llevar a cabo de forma remota. El 2013 va a ser un año bastante intenso para OmegaUp.

OmegaUp es una plataforma open-source sin fines de lucro y todo el tiempo estamos buscando desarrolladores que gusten aportar al proyecto. Si te interesa, sabes o quieres aprender desarrollo web, diseño, o tienes alguna idea de sistemas distribuidos o machine learning que quisieras implementar, o tienes algún proyecto escolar que no sabes como invertir o simplemente quieres ganar experiencia desarrollando y manteniendo vivo un servicio web, siendo parte de un equipo de desarrollo remoto, puedes contactarme en joe [at] omegaup.com.  Nuestro código se encuentra disponible en github.

Salu2!
-Joe

CONACUP 2012 – Todo un éxito

Los días 3 y 4 de Noviembre del 2012, 80 de los mejores programadores de México se dieron cita en el ITESO de Guadalajara, Jalisco para participar en el 2do Concurso Nacional Abierto de Programación CONACUP, organizado por la Sociedad Latinoamericana de Ciencia y Tecnología SOLACyT.

El equipo organizador del CONACUP 2012
El equipo organizador del CONACUP 2012

Nos da mucho gusto que Omegaup fue la plataforma oficial para la evaluación de los problemas y estamos completamente comprometidos con el proyecto para los años venideros.

CONACUP 2012
CONACUP 2012 Foto Oficial

El CONACUP 2012 fue sin duda, una competencia bastante emocionante.  Los 5 primeros lugares fueron:

  1. Miguel Ángel Covarrubias (macs)
  2. Itzel Carolina Delgadillo
  3. Ulises Mendez Martínez
  4. Juan Antonio Ruiz Leal
  5. Hugo Dueñas
Scoreboard Final CONACUP 2012
Scoreboard Final CONACUP 2012

¡Muchas felicidades a todos los participantes! Esperamos verlos el próximo año. Mientras tanto, estamos trabajando para publicar las redacciones finales en Omegaup, esperen noticias.