Programación Competitiva

Autor: Neilor Tonin – beecrowd

(6 minutos de lectura)


El ser humano es competitivo por naturaleza. Se dice que la competencia está en nuestro ADN desde los tiempos de las cavernas (competencia por la comida) y que forma parte de nuestra supervivencia y evolución.

Es muy común que nos detengamos a seguir competiciones en los Juegos Olímpicos y la Copa del Mundo. Son las competiciones más difundidas y conocidas. Pero existen otro tipo de competencias, que no implican esfuerzo físico y los competidores no dependen necesariamente de su condición física. En estas competencias, el elemento indispensable es el poder de razonamiento. Entre estos, podemos mencionar las olimpiadas de educación secundaria (matemáticas, informática, química) y de educación superior (maratón de programación para quienes estudian Ciencias de la Computación y carreras afines).

Estos eventos se caracterizan por la programación competitiva, es decir, la programación en un entorno competitivo, en el que gana el equipo que resuelve el mayor número de problemas en un tiempo predeterminado, de acuerdo con las especificaciones proporcionadas, haciendo uso de la programación. En caso de empate, gana el equipo que haya resuelto el mismo número de problemas en menos tiempo.

Por cierto, hablando de programación competitiva, estamos cerca de la fecha de la gran final del Maratón de Programación en Brasil. Es una competencia en la que, en marzo de este año, se reunirán los 60 mejores equipos de Brasil (compuestos por 3 competidores cada uno) que pasaron la primera fase (unos 800 equipos de numerosas universidades). Esta competencia se llevará a cabo en Gramado, RS y el mismo evento se llevará a cabo simultáneamente en varios países de América Latina. Los mejores clasificados obtienen como premio la posibilidad de participar en la final mundial del evento. Para quien es estudiante de Informática, ciertamente no existe otro evento de mayor trascendencia y con tal riqueza de aprendizaje, pues además de la calificación personal, la experiencia de un viaje inolvidable está en el equipaje.

Un dato interesante es que los estudiantes que optan por participar en estos concursos suelen ser los más buscados por las empresas, ya que la programación competitiva los incentiva a buscar conocimientos adicionales para resolver problemas y brinda la experiencia de trabajar en grupos bajo presión. Así como los atletas tienen que hacer ejercicio y buscar acondicionamiento físico, podemos ver estas competencias como una forma de que los académicos ejerciten su cerebro y se preparen mejor para el mercado laboral, logrando ver soluciones no triviales y diferentes formas de abordar y solucionar un determinado problema cuando se encuentran en una situación real dentro de una empresa.

El portal beecrowd tiene más de dos mil trescientos problemas típicos de competencias de programación, en un formato muy similar a los problemas disponibles en la Olimpiada Brasileña de Informática (OBI) y Maratón de Programación. Por cierto, para los que quieran prepararse, todos los problemas de las ediciones anteriores de la OBI y la Maratón de Programación (fase eliminatoria y fase final) están disponibles en el portal. También están disponibles muchos problemas de competencias regionales (como la Maratón Mineira) y la Maratón de las escuelas de Invierno y Verano (eventos preparatorios para los equipos que compiten). Estos problemas son excelentes para que los programadores desarrollen algoritmos y mejoren sus técnicas de programación.

Este año, beecrowd será el patrocinador oficial de la final del XXVI Maratón de Programación (clasificatorio latinoamericano para la final mundial) y solemos hacer un espejo de la competencia en la misma fecha de la carrera oficial. Esto significa que, si su equipo quedó fuera de la final, puede intentar resolver los mismos problemas que los equipos clasificados resolverán en Gramado. La prueba en el portal (beecrowd) normalmente debe comenzar algunas horas después de la prueba oficial. Solo acceda a https://beecrowd.io/, regístrese, inicie sesión y acceda a la pestaña CONCURSOS para encontrar la prueba. ¡Te avisaremos cuando todo esté listo para que te registres!

Por último, basta con conocer los detalles de una competición. La prueba tiene una duración de 5 horas (tanto la primera fase como la final). Por lo general, se ponen a disposición de los equipos de 8 a 13 problemas de diferentes temas y complejidades (las finales suelen mezclar algunos temas en ciertas preguntas además de requerir un excelente pensamiento lógico). Estos problemas van desde problemas muy simples que por lo general los mejores equipos dedican unos minutos a resolver hasta problemas muy complejos, que pocos equipos en América Latina pueden resolver.

Para ilustrar un poco y explicar algunos detalles, sigue la puntuación de una competición.

Esta fue una competencia individual y se puede ver que la competencia ha terminado (hora 00:00 para resolver). Hubo un total de 13 problemas, pero el competidor que ganó resolvió 9 de ellos. El cuadrado gris indica el concursante que fue el primero en presentar una solución correcta al problema (por ejemplo, el problema C para el concursante 2). Además, el número en el círculo indica la cantidad de veces que el competidor presentó una solución dada hasta que resolvió correctamente el problema (el competidor 1 presentó 4 veces el problema B y 1 vez el problema A, por ejemplo). 

También es interesante que cada presentación incorrecta agrega una penalización al tiempo total de resolución y el número debajo del problema indica en qué tiempo de la carrera el competidor logró acertar. Por ejemplo, el competidor 3 resolvió el problema A en el minuto 112 de la carrera, es decir, justo antes de cerrar a 2 horas del inicio de la carrera. Estos tiempos son de desempate. Por ejemplo, aunque el segundo y tercer lugar resolvieron 8 problemas, el segundo lugar lo resolvió en mucho menos tiempo. Los problemas con el color blanco indican que el competidor no lo hizo bien. Por ejemplo, el primer competidor presentó el problema I 10 veces sin éxito. En cualquier caso, este tiempo no se cuenta (cuando el competidor no acierta en el problema).

Abajo también una foto de una Final Nacional del Maratón de Programación. Esta imagen es de la Final Nacional 2012, y se llevó a cabo en Londrina, PR. Cada globo indica un problema resuelto por el equipo.

Sigue nuestro blog y redes sociales para más información sobre la final del Maratón de Programación de este año. 


¿Te gustó nuestro contenido? Así que síganos en las redes sociales para estar al tanto de más información y siga nuestro blog.

Autor: Neilor Tonin es el Chief Academic Officer de beecrowd. También es profesor y coordinador responsable de las áreas de Ingeniería Informática y Ciencias de la Computación en una gran universidad brasileña. Neilor es miembro activo del comité responsable de la organización de la Olimpiada Brasileña de Informática (OBI), la etapa brasileña de la Olimpiada Internacional de Informática (IOI).

Comparte este artículo en tus redes sociales:
Califica este artículo:

Otros artículos que podría interesarle leer

  • Todos (185)
  • Bienestar (18)
  • Carrera profesional (38)
  • Competencias (6)
  • Desarrollo (112)
  • Diseño (8)
  • Diversidad e inclusión (3)
  • Eventos (3)
  • Historia (15)
  • Industrias (6)
  • Innovación (38)
  • Liderazgo (8)
  • Proyectos (23)
¿Le gustaría que su artículo o video sea publicado en el blog y las redes sociales de beecrowd? Si está interesado, envíenos un correo electrónico con el asunto “BLOG” a [email protected] y le daremos más detalles sobre el proceso y los requisitos previos para que su artículo / video sea publicado en nuestros canales

Sede
Rua Funchal, 538
Cj. 24
Vila Olímpia
04551-060
São Paulo, SP
Brasil

© 2023 beecrowd

Todos los Derechos Reservados