Download Instrucciones para el concurso de 2010

Document related concepts
no text concepts found
Transcript
IX Concurso de Programación FIC:
Normas e Instrucciones
En este concurso de programación se presentarán cinco problemas a resolver mediante programas en C, C++, Java o Pascal. El objetivo es resolver el máximo número de problemas posible.
En caso de que varios equipos resuelvan el mismo número de problemas, el desempate se hará por
tiempo.
1
Algunas normas básicas
• No está permitido consultar ninguna fuente como libros, folios de apuntes, etc. Sin embargo,
sı́ que podéis consultar la documentación estándar de todos los lenguajes (API de Java,
documentación de la STL de C++, documentación de FPC, etc.) que está en:
http://patron/~mooshak/doc/
En el caso de la documentación comprimida en .zip o .tar.gz, sugerimos descomprimirla al
/tmp de vuestras máquinas locales si no hay sitio en las cuentas de usuario.
• No está permitido comer ni beber en el laboratorio.
• No se permite entrar y salir una vez empezado el concurso, salvo casos excepcionales justificados.
2
Uso del entorno Mooshak
El concurso está gestionado mediante una aplicación web llamada Mooshak. Para enviar vuestras
soluciones a los problemas, deberéis hacerlo mediante un formulario de esta web, que también
muestra en tiempo real la clasificación del concurso y qué problemas ha solucionado cada equipo.
2.1
Empezar y hacer login
Para empezar, debéis seguir los siguientes pasos:
1. Hacer login en Linux mediante el nombre de usuario y password que se os proporciona.
Nótese que se trata de unas cuentas especı́ficas para este concurso. NO debéis hacer login
con vuestras propias cuentas de usuario que usáis normalmente en las prácticas.
2. En un navegador, abrir la web http://patron/~mooshak/.1
3. Aparecerá un formulario para hacer login en la aplicación Mooshak. Introducir el nombre de
usuario y contraseña que se os proporciona para esta aplicación.
4. Con esto os encontraréis dentro de la aplicación Mooshak.
2.2
Vistas de la aplicación
Una vez en Mooshak, la web nos permite seleccionar entre varias vistas. Las más interesantes son
“Submissions” y “Ranking”, el resto no las usaremos en este concurso.
En la vista “Submissions” se muestran los envı́os hechos por los distintos equipos. Aquı́ podéis
ver si vuestras soluciones (o las de otros equipos) están bien o mal después de haberlas enviado.
Esto se muestra en la columna “Result”, que puede ser:
• “Accepted”: el problema ha sido resuelto correctamente.
1 La
dirección IP de la máquina patron es 10.10.111.25.
1
• “Wrong Answer”: el programa enviado da una respuesta incorrecta para algún caso de
prueba. (los problemas se evalúan contra unos casos de prueba que no coinciden con los
ejemplos que se proporcionan en el enunciado, y que no se harán públicos hasta que termine
el concurso).
• “Time Limit Exceeded”: el programa tarda demasiado tiempo en ejecutarse. El lı́mite de
tiempo para cada caso de prueba es de aproximadamente cinco segundos. Si vuestro programa
no es capaz de resolver cualquier caso en este tiempo, es posible que aparezca este error.
• “Memory Limit Exceeded”: el programa gasta demasiada memoria. El lı́mite es de 32 MB,
aproximadamente.
• “Compile Time Error”: el programa no compila.
• “Runtime Error”: el programa produce una excepción u otro fallo en ejecución.
La vista “Ranking” muestra la clasificación actual del concurso. La clasificación depende del
número de problemas que haya resuelto cada equipo y del tiempo invertido. El tiempo invertido
es la suma de los tiempos que han pasado desde el principio del concurso hasta la resolución de
cada problema. Es decir, si habéis resuelto un problema en una hora, y luego otro en otra hora
(por lo tanto, dos horas después de empezar el concurso), vuestro tiempo total será de tres horas.
Además, si un equipo resuelve un problema después de haber hecho envı́os fallidos (wrong answer,
time limit exceeded, etc.), cada envı́o fallido lo penalizará con veinte minutos de tiempo en ese
problema.
2.3
Enviar una solución
Para enviar una solución, colocaos en la vista “Submissions”, y a continuación:
• Marcad el botón correspondiente a la letra del problema, A, B, C, D o E (importante).
• Abrir el fichero fuente mediante el selector de fichero.
• Pulsar “Submit” para enviar la solución. Al cabo de unos segundos, el resultado deberı́a
aparecer en la vista “Submissions” (es posible que tengáis que cambiar de vista y volver a
“Submissions” de nuevo para que aparezca).
Es importante que los envı́os cumplan las siguientes normas:
• El programa tiene que estar en un solo fichero fuente. Recordad que, en el caso de Java,
puede haber varias clases en un solo fichero, pero es necesario que sólo una sea “public class”
y que el nombre de ésta coincida con el nombre del fichero.
• La extensión del fichero debe ser .c (para C), .cpp (para C++), .java (para Java) o .pas (para
Pascal).
• El programa debe compilar sin warnings. La salida del compilador deberı́a ser vacı́a. De lo
contrario, se producirá “Compile Time Error”.
Para aseguraros de esto último, es recomendable que utilicéis los compiladores que hay en la
máquina patron, pues son los mismos que utiliza el Mooshak. Para acceder a la máquina patron,
podéis hacer ssh 10.10.111.25. Las lı́neas de compilación exactas que se usan son:
• C: /usr/bin/gcc -Wall -lm fichero
• C++: /usr/bin/g++ -Wall fichero
• Java: /opt/jdk1.5.0_04/bin/javac -nowarn fichero
• Pascal: /usr/bin/fpc -v0w -oprog fichero
Si con estas lı́neas vuestro programa compila sin warnings en patron, no deberı́a haber problemas de compilación en el Mooshak. Nótese que la lı́nea de compilación de Java está puesta para
que no produzca warning si no utilizáis generics, ası́ que podéis usarlos o no, a vuestra elección.
Podéis enviar soluciones para el mismo problema tantas veces como queráis hasta que consigáis
una válida. Sin embargo, recordad que cada solución fallida significa una penalización en el tiempo.
2
Related documents