Bases Concurso Programación 2011

12
 APIX Concurso de programación Xtrelan 2011 Juez Online Mooshak Colaboran Grupo de Ingeniería de Medios Grupo de Ingeniería de Software Quercus

Transcript of Bases Concurso Programación 2011

  • 5/22/2018 Bases Concurso Programacin 2011

    1/11

    APIX

    Concurso de programacin Xtrelan 2011

    Juez Online Mooshak

    Colaboran

    Grupo de Ingeniera de Medios Grupo de Ingeniera de Software Quercus

  • 5/22/2018 Bases Concurso Programacin 2011

    2/11

    2

    Contenido

    1. Bases del concurso. ....................................................................................................... 2

    2. Premios. ......................................................................................................................... 3

    3. Registro. ......................................................................................................................... 3

    2. Utilizacin de Mooshak. .................................................................................................. 4

    3. Algunos consejos para resolver los problemas correctamente ....................................... 6

    4. Ejemplo de problema resuelto ........................................................................................ 7

    5. Errores frecuentes .......................................................................................................... 9

    La prueba de programacin de la Xtrelan2011se realizar utilizando un juez automticollamado Mooshak. Esta es una aplicacin que permite comprobar si un programa resuelve

    correctamente el problema planteado. Os recomendamos que preparis la pruebaentrenando con esta aplicacin. De esa forma, el da del concurso, todo resultar mscmodo. A continuacin, encontraris unas sencillas indicaciones para utilizar Mooshak.

    1. Bases del concurso.

    Estas bases estarn sujetas a modificacin por la organizacin del evento hasta el da decomienzo del mismo. Por favor, presta atencin a ellas en la web oficial de la party.

    1. El objetivo del concurso es divertirse programando. Qu otro podra ser?2. La competitividad es la base de los concursos. Demuestra que eres mejor

    programador.3. Las herramientas (en este caso los lenguajes) son menos importantes que los

    resultados. Escoge tu lenguaje preferido: ANSI C (gcc 4.4.1), Java6 (Sun JDK1.6.0_18)o C++ (g++ 4.4.1). Compites en igualdad de condiciones.

    4. El concurso consiste en resolver problemas pequeos, aunque no necesariamentesimples, programando una lgica entre una entrada de texto y una salida de texto.

    5. El concurso se rige por las reglas del ACM ICPC ( International CollegiateProgramming Contest), que se describen a continuacin:

    En primer lugar, los participantes se ordenarn por el mayor nmero deproblemas resueltos correctamente, es decir, aceptados por el juez on-line.

    En caso de empate en el nmero de problemas resueltos, se sumarn paracada problema resuelto el tiempo tardado desde el inicio del concurso hastael instante en que dicho problema es aceptado por el juez on-line. Losparticipantes con el mismo nmero de problemas resueltos se ordenarnatendiendo a dicha suma de tiempos, de menor a mayor.

    En la anterior suma, cada envo no aceptado realizado a un problemasumar una penalizacin de 20 minutos, siempre que el problema seadespus aceptado (es decir, los envos incorrectos no penalizan si elproblema no es resuelto finalmente).

    La clasificacin estar disponible en el propio juez on-line durante el

  • 5/22/2018 Bases Concurso Programacin 2011

    3/11

    3

    desarrollo de la prueba y se ocultar automticamente una hora antes de lafinalizacin de la misma. No obstante, esta clasificacin podra sufrircambios si los jueces detectan alguna irregularidad (como copia entreequipos, fallos en el juicio automtico, etc.).

    6. El slogan del torneo es Haz difcil lo fcil. No lo olvides.7. Resolver un problema implica hacerlo de la mejor manera. La eficiencia es requisitoindispensable de los buenos programas.

    8. Los tiempos de los problemas cuentan desde el inicio del concurso. Slo t decidesel orden en que los intentas resolver.

    9. El concurso estar abierto para los inscritos desde las 14:00 horas del da 29 deabril hasta las 14:00 horas del da 1 de mayo. Durante este periodo de tiempo losenunciados de los problemas estarn disponibles en el juez on-line de Xtrelan2011. Atento, los minutos corren desde el momento de apertura del concurso.

    10. La filosofa consiste en que lo que se descubre es mejor que lo que se gana. Qute parece?

    11. Para participar en el concurso ser necesario inscribirse previamente en la intranetde Xtrelan. No se admitiran inscripciones a medio concurso.

    12. Los enunciados estarn en castellano o ingls, lo cual no es ningn problema paraun programador experto.

    13. Cada vez que recibas un resultado Accepted por parte del juez online, vers queen tu pgina de estadsticas aparece como resuelto con el segundo exacto en quese verific. Ese es el instante que cuenta a efectos de concurso.

    2. Premios.

    Primer premio: iPad 2 wifi 64GBSegundo premio: iPad 2 wifi 16GB

    3. Registro.

    Para poder participar en el concurso de programacin de Xtrelan'2011, debers realizartu inscripcin en la intranet de Xtrelan'2011. All te facilitarn tu identificacin de acceso aMooshak para el concurso.

    Previo a la participacin, y para que te familiarices con el uso de Mooshak, se ha creado

    un escenario de preparacin que podrs encontrar accediendo ahttp://oiex.unex.es/~mooshak. En esta ocasin, debers registrarte on-line haciendoclick en la opcin para registrarse.

    http://oiex.unex.es/~mooshakhttp://oiex.unex.es/~mooshakhttp://oiex.unex.es/~mooshak
  • 5/22/2018 Bases Concurso Programacin 2011

    4/11

    4

    Figura 1. Mensaje de bienvenida

    A continuacin deberis rellenar un sencillo formulario:Figura 2. Formulario para el registro en la aplicacin

    Utilizando este formulario, debis introducir el nombre por el que Mooshak os va a

    conocer. Debis tener en cuenta que Mooshak slo aceptar letras, dgitos y el guin bajo_, pero no acepta espacios en blanco, vocales con tilde, 's, o cualquier otro carcterespecial. Por lo tanto, tu nombre puede ser PepePerez o Pepe_Perez pero no JosM Prez.Inmediatamente, recibirs en tu correo electrnico un mensaje en el que se te indicar lacontrasea que necesitas para utilizar la aplicacin.

    2. Uti l izacin de Mooshak.

    Una vez que tengas tu contrasea para entrar en la aplicacin, debers volver a lapantalla de entrada a Mooshak (Figura 1) y pulsar el botn entrar. A continuacindebers rellenar una nuevo formulario con tu nombre de usuario y tu contrasea.

  • 5/22/2018 Bases Concurso Programacin 2011

    5/11

    5

    Figura 3. Formulario de entrada a la aplicacin

    Si eliges la opcin de invitado puedes entrar en la aplicacin sin haberte registradopreviamente y as podrs ver los resultados obtenidos por los diferentes participantes perono podrs ver los enunciados de los problemas ni participar en el concurso.Si has entrado como un usuario registrado, la pantalla que vas a encontrar es la siguiente:

    Figura 4. Pantalla de trabajo de Mooshak

    En primer lugar debers decidir cul es el problema que quieres resolver, para ello podrsutilizar la pestaa sealada en la figura con la flecha roja, en la parte inferior de la pantallapodrs ver el enunciado de dicho problema.Debers resolver el problema con un programa escrito en C, C++ o Java. En el apartadosiguiente te daremos algunos consejos para realizar estos programas. Una vez escrito elprograma debers enviar el fichero que hayas creado a Mooshak. La pestaa Examinar..que indica la flecha verde te permitir seleccionar tu fichero con comodidad dentro delsistema de carpetas de tu ordenador. Cuando hayas seleccionado el fichero, pulsa el

  • 5/22/2018 Bases Concurso Programacin 2011

    6/11

    6

    botn Enviar. Inmediatamente vers el resultado en la parte inferior de la pantalla. Si elprograma es correcto aparecer el mensaje Accepted en color verde y si no lo esaparecer un mensaje en color rojo.Si quieres tener ms informacin sobre estos mensajes de error, pulsa la tecla Ayuda yencontrars las respuestas a las preguntas ms frecuentes.

    La opcin Ver te permite ver el enunciado del problema seleccionado.La opcin Preguntar te permite enviar una pregunta al administrador de la aplicacin.La opcin Salir, evidentemente, te permite salir de la aplicacin.

    3. Algunos consejos para resolver los problemas corr ectamente

    Para que Mooshak sepa qu lenguaje has utilizado para resolver el problema, debes darleal fichero que contiene la solucin un nombre con la extensin adecuada.

    Lenguaje Extensin Ejemplo de nombre para elfichero

    C c solucion.c

    C++ cpp solucion.cpp

    Java java solucion.java

    Para comprobar si un programa resuelve correctamente el problema propuesto, Mooshaklo ejecuta y compara la salida con una serie de casos de pruebas que estn previamentedefinidos. Por este motivo, es muy importante que la entrada y la salida del programa seajusten a lo indicado en el enunciado.

    No dejes espacios en blanco o lneas en blanco que no estn indicadas en elenunciado.

    Cuida los caracteres utilizados en los mensajes. Por ejemplo, no es lo mismoescribir:

    5 es primo

    5 es Primo

    5 es primo

    No es necesario utilizar ningn archivo de entrada o salida. La entrada se leedesde teclado, es decir, desde la entrada estndar. La salida se escribe en lapantalla (salida estndar). Ejemplos de instrucciones de entrada y salida:

    Lenguaje instruccin de entrada instruccin de salida

    C scanf( d, &A); printf ( d\n, A*2);C++ cin >> A; cout

  • 5/22/2018 Bases Concurso Programacin 2011

    7/11

    7

    ejemplo Introduzca el dato: .

    No utilicis funciones como getch()en C, ya que stas esperan a que un usuariopresione una tecla y el juez automtico considerar que el programa est parado.

    Tambin es muy importante que utiliceis el menor nmero posible de libreras.

    Cualquier infraccin a estas reglas puede representar un error para el evaluadorautomtico. Esto puede ocurrir aunque el programa funcione correctamente con tucompilador habitual. Por lo tanto, ten en cuenta estas recomendaciones al resolver losproblemas.

    4. Ejemplo de problema resuelto

    A continuacin presentamos la solucin, en diferentes lenguajes de programacin, de unproblema muy sencillo.

    Enunciado del problemaEscribir un programa que, dado un nmero entero, escriba el doble de dicho nmero.

    Entrada:

    La entrada consta de varios casos de prueba. La primera lnea indica el nmero de casos.Las lneas restantes tienen un nmero entero cuyo doble hay que calcular.

    Salida:Por cada caso de prueba, el programa debe escribir el doble del nmero indicado.

    Ejemplo de entrada:4916-53

    Ejemplo de salida:

    1832-106

    En las soluciones que aparecen a continuacin todos los programas tienen la mismaestructura. Adems, hemos utilizado, en todos los casos, las siguientes variables:

    num_datos se utilizar para almacenar el valor de la primera lnea, es decir, elnmero de casos de prueba

    datoalmacenar, de forma secuencial, el resto de los nmeros que constituyen laentrada del programa, es decir, los nmeros cuyo doble vamos a calcular

    i es una variable ndiceque utilizaremos en el bucle encargado de leer y procesarlos datos.

  • 5/22/2018 Bases Concurso Programacin 2011

    8/11

    8

    Solucin en C:

    #include

    int main(){

    int num_datos, dato, i;

    scanf(%d, &num_datos);for (i = 0; i < num_datos; i++){

    scanf(%d, &dato);

    printf(%d\n, dato * 2);

    };

    return 0;

    }

    Solucin en C++:

    #include

    using namespace std;

    int main(){

    int num_datos, dato;

    cin >> num_datos;

    for (int i = 0; i < num_datos; i++){

    cin >> dato;

    cout

  • 5/22/2018 Bases Concurso Programacin 2011

    9/11

    9

    }

    }

    }

    5. Errores frecuentes

    Cuando envas a Mooshak un programa que resuelve un determinado problema, tuobjetivo ser que aparezca el mensaje Accepted. Eso significa que el programa hafuncionado segn lo esperado. Te recomendamos que antes de enviar el programa hagasalguna prueba para comprobar que su funcionamiento es correcto ya que, en lacompeticin, los envos incorrectos sern penalizados.Sin embargo, es posible que recibas un mensaje que te ndica la existencia de unproblema. Estos son los errores que pueden aparecer:

    Compile Time ErrorEl sistema no ha podido compilar el programa debido a algn error. Si haces doble clicksobre el mensaje, podrs ver otros mensajes que explican la situacin (indicandohabitualmente la lnea en la que se ha detectado el problema), y que te ayudarn aencontrar el error. Habramos tenido un error de este tipo si hubiramos enviado elsiguiente cdigo para el ejemplo del apartado 4. Un despiste al escribir el nombre de unavariable hace que el compilador no la reconozca.

    #include

    using namespace std;

    int main(){int num_datos, dato;

    cin >> num_datosss;for (int i = 0; i < num_datos; i++){

    cin >> dato;

    cout

  • 5/22/2018 Bases Concurso Programacin 2011

    10/11

    10

    int main(){

    int num_datos, dato;

    cin >> num_datosss;

    for (int i = 0; i < num_datos; i++){

    cin >> dato;

    cout > dato;

    cout dato;

    cout

  • 5/22/2018 Bases Concurso Programacin 2011

    11/11

    11

    return 0;

    }

    Invalid SubmissionEl envo no ha sido correcto. Es posible que el fichero enviado no tenga un nombre vlido.

    Output Limit ExceededLa salida que genera el programa es demasiado grande.

    Program Size ExceededEl cdigo del programa es demasiado largo.

    Invalid functionSe ha violado alguna regla de Mooshak, por ejemplo, utilizar libreras no estndar o

    terminar el programa con return 1 o exit 1.

    6. Licencia y uso inapropiado.

    Queda terminantemente prohibidoel uso de cualquier medio, dispositivo, aplicacin omodificacin alguna que afecte al funcionamiento normal de la plataforma del juez online,con el fin de obtener la ms mnima ventaja, ya sea a travs de. El uso de cualquiera deestas medidas supondr la expulsin inmediatadel participante en cuestin.

    Los problemas a resolver sern publicados a travs de la plataforma Mooshak justo a lahora de comienzo del concurso

    La organizacin se reserva el derecho a modificar las bases del torneo sin previo aviso enfuncin de la afluencia de participantes o posibles problemas de logstica que puedansurgir. As como a tomar las medidas adecuadas si existe algn tipo de comportamientoinapropiado de los participantes, pudiendo suponer la expulsin de los mismos delconcurso.

    La lectura, comprensin y aceptacin completa y absoluta de todos los puntos de estasbases, es requisito imprescindible para la participacin en el torneo.

    Todas las marcas son propiedad de sus respectivos autores. Todos los derechosreservados.