Concurso Nacional

Organizado en la Facultad de Informática de la UCM

7 de junio de 2024

Patrocinadores

Este concurso está patrocinado por las siguientes entidades. Agradecemos a todas ellas su colaboración.



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 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
  • IDEs:
    • C/C++: CodeBlocks
    • Java: Eclipse 2023-06, IntelliJ Community 2023.1
  • Documentación: STL (C++) OpenJDK (8)

Los ordenadores no tendrán ningún tipo de conexión a Internet salvo la necesaria para poder realizar los envíos al juez on-line. Tampoco se dispondrá de servicio de impresión.

Juez on-line

Para evaluar los envíos se utiliza el juez automático 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 17. 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, lo más normal es que los jueces utilicen el mecanismo de aclaraciones disponible en 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 puedan probar con antelación el entorno, desde la organización se ha preparado una máquina virtual con él. Está disponible a través de un fichero .ova, que puede importarse en cualquier software de virtualización. Se ha probado con VirtualBox (6.1), pero también debería funcionar con otros programas como VMWare. Tiene exactamente el mismo software que tendrán los ordenadores proporcionados por la organización, salvo por el enlace al juez automático que aparecerá en el escritorio del concurso, pero no en el de la máquina virtual.

Escritorio de los ordenadores del concurso

Para usar el fichero .ova, en VirtualBox se usa la opción de "Importar software virtualizado". Por defecto la máquina virtual tiene configurados 4 GiB de memoria y un único procesador. Se recomienda adaptar esos parámetros en función del equipo hardware concreto sobre el que se lance. En particular, es preferible, siempre que sea posible, ampliar la memoria y el número de procesadores. Además, la máquina virtual no tiene tarjeta de red para simular la situación del concurso, durante el que la conectividad a Internet estará restringida. De ese modo no se podrá, por ejemplo, instalar ninguna extensión a VisualStudio Code, igual que ocurre en el concurso. No obstante cada uno es libre de ampliar su máquina virtual para ponerle la tarjeta de red, en cuyo caso se debe ser consciente de la diferencia de contexto con respecto al concurso.

Si se usa VirtualBox, durante el proceso de la importación se debe además desmarcar la opción "Importar discos como VDI" y conviene deshabilitar el uso del Controlador USB, para quitar el soporte USB 2.0 (salvo que se tenga instalado el módulo de Oracle).

Opciones de importación en VirtualBox

Además, una vez creada la máquina, es recomendable subir la memoria de vídeo al máximo (típicamente 128 MiB) en Configuración - Pantalla.

Cuando se lanza la máquina virtual, se hará login automáticamente con el usuario vm_user y el escritorio aparecerá en una resolución reducida. Es recomendable ir a Configuración - Pantalla y poner la resolución nativa del monitor y luego saltar a pantalla completa en el software de virtualización que se utilice.

Si se usa VirtualBox, por defecto la "tecla anfitrión" para salir de la máquina virtual y crear combinaciones de teclas que reciba directamente VirtualBox es el control derecho. Eso significa que si, por ejemplo, se pulsa Ctrl-Fin durante la edición de código fuente (con control derecho) la combinación la recibirá VirtualBox, y parecerá no funcionarar. Una forma de evitarlo es cambiar esa "tecla anfitrión" en VirtualBox.

Prueba tus soluciones

Puedes probar tus soluciones en ¡Acepta el reto!, el juez on-line con problemas de ediciones anteriores.

Programame 2.0

Visita nuestro blog con acertijos programables.