Concurso Nacional

Organizado en la Facultad de Informática de la UCM

7, 8 de julio, 2023

Desarrollo del concurso

Entorno informático

Los equipos participarán utilizando ordenadores proporcionados por la organización, de modo que se garantizará la igualdad de condiciones entre todos ellos. En concreto, se hará uso de varios laboratorios de la Facultad de Informática de la UCM desde la que se organiza la final.

Los ordenadores tienen instalado GNU/Linux, en concreto una versión reducida de Ubuntu, con escritorio Xfce. El software y herramientas que disponibles son:

  • Sistema operativo: Ubuntu 22.04 LTS (instalación mínima)
  • Editores: emacs, vim, geany, MS VStudio Code con extensiones para los distintos lenguajes soportados en el concurso y (deshabilitado) el emulador de Vim.
  • Compiladores/intérpretes: gcc, g++, Oracle JDK 8, python3, pypy3, gnat-10 (ada)
  • IDEs:
    • C/C++: CodeBlocks
    • Java: Eclipse 2023-06, IntelliJ Community 2023.1
    • Python: PyCharm Community 2023.1
  • Documentación: STL (C++) OpenJDK (8), Python 3.x, gnat-10

PyCharm utiliza python3 para lanzar las aplicaciones. El juez automático, sin embargo, usa pypy3, que también estará instalado. Desde el terminal están disponibles los scripts mygcc, myg++, myjava, mypyton (por un error, le falta una h) y myada para lanzar el compilador con las mismas opciones que lo hará el juez automático. En el caso de Python el script se limita a comprobar la sintáxis del código. Para lanzarlo igual que lo hará el juez se puede usar pypy3 directamente.

Los ordenadores no tendrán ningún tipo de conexión a Internet salvo la necesaria para poder realizar los envíos al juez automático.

Juez automático

Para evaluar los envíos se utiliza DOMjudge. El manual está disponible aquí. Puedes familiarizarte con el interfaz en la "live demo" proporcionada por los creadores del software.

Una vez que se realice el envío de una solución, se ve rápidamente el veredicto dado por el juez automático, que utilizará versiones de los compiladores equivalentes a las de los equipos de los participantes, con la salvedad del OpenJDK 11. Los jueces humanos estarán durante todo el concurso velando por la corrección de los veredictos de ese juez automático. En ocasiones pueden surgir problemas, tales como un fallo de un recurso, error en un caso de prueba, etc. En esas ocasiones, los jueces humanos pueden decidir alterar el veredicto inicial. Si ocurre durante el concurso, los más normal es que los jueces utilicen el mecanismo de aclaraciones que tiene DOMjudge para hacer llegar un aviso al equipo.

El mismo sistema de aclaraciones puede ser utilizado por los equipos para hacer llegar dudas sobre el enunciado a los jueces. En ningún caso se deberá pedir ayuda a los voluntarios que vigilen el correcto transcurso del concurso en las aulas.

Prueba el entorno antes de participar

Para que los participantes pudieran probar con antelación el entorno, desde la organización se preparó una máquina virtual con él. El fichero .ova ya no está disponible, pero tenía exactamente el mismo software que tuvieron los ordenadores proporcionados por la organización durante el concurso, salvo por el enlace al juez automático que apareció en el escritorio del concurso, pero no en el de la máquina virtual.

Escritorio de los ordenadores del concurso

Patrocinadores

Platino

Plata

Bronce

Entrena

Puedes intentar resolver problemas en distintos jueces en línea, como ¡Acepta el reto!, el juez on-line con problemas de ediciones anteriores.