concurso de programación 2008

Upload: zacariasefron

Post on 07-Jul-2018

215 views

Category:

Documents


0 download

TRANSCRIPT

  • 8/18/2019 Concurso de programación 2008

    1/6

    Concurso de programación 2008

    Escuela Universitaria de Informática

    Universidad Politécnica de Madrid

    Escoba Entrenamiento 2 Nivel 1

    El juego de la escoba consiste en sumar 15 puntos con una de las cartas que el jugador tiene enla mano y las cartas que hay en la mesa.

    Inicialmente, cada jugador recibe tres cartas de la baraja española, y en la mesa se ponen otrascuatro. El número de cartas de cada jugador va disminuyendo con cada ronda hasta quedarsesin ninguna, momento en que se reparten otras tres. Este proceso continúa hasta que no quedencartas por repartir. Después de que se juegue la última mano se procederá a contar el total depuntos de cada jugador.

    El número de cartas en la mesa irá variando según se vaya desarrollando el juego e incluso puedeser 0, si un jugador acaba de conseguir una escoba. Lo que nunca podrá ocurrir es que, con unacombinación de cartas en la mesa, se pueda sumar 15. Las cartas con número tienen un valorigual a su número y las tres restantes valen 8 la sota, 9 el caballo y 10 el rey.

    Cuando un jugador completa 15 puntos, retira su carta utilizada y las que se han usado de la

    mesa para completar los 15 puntos. Pero, si no puede sumar 15 puntos, pone una de sus cartasen la mesa. Si se retiran todas las cartas de la mesa en una jugada, el jugador que lo haga ganadirectamente 1 punto. Esta jugada se llama “hacer escoba”. Si en la jugada un jugador se llevael 7 de oros, obtiene directamente 1 punto. Además de esto, al final de la partida, el jugadorque tenga más oros, sietes o cartas se llevará 1 punto por cada uno de estos conceptos. Cada jugador debe tratar de conseguir los máximos puntos posibles en cada jugada y, si no es posibleconseguir ningún punto directo, jugar para que al final pueda conseguir los máximos puntos”indirectos”.

    El problema que se plantea es el siguiente: dado un conjunto de cartas en la mesa y tres cartasque un jugador tiene “en la mano”, determinar, de todas las posibles, cu ál es la mejor jugada

    en ese momento.

    Entrada

    En la primera lı́nea se indica el número de casos de prueba. Cada caso de prueba se describede la siguiente manera: un entero en   n   (0  ≤   n  ≤  8) en una ĺınea que indica el numerode cartas en la mesa y, para cada una de éstas, una ĺınea con un carácter y un númeroseparados por un espacio (palo-espacio-número) que codifican la carta del siguiente modo:

    a ) Carácter: O (oros), C (copas), E (espadas) ó B (bastos).

    b) Número: 1, 2, 3, 4, 5, 6, 7, 8 (sota), 9 (caballo) ó 10 (rey).

    Finalmente hay tres ĺıneas para codificar las cartas que el jugador tiene en la mano.

  • 8/18/2019 Concurso de programación 2008

    2/6

    Salida

    La solucíon de cada uno de los casos de prueba se escribe del siguiente modo: un entero enuna ĺınea indicando el número de cartas que juega el jugador (0 si no puede jugar ninguna)y, para cada una de éstas, una ĺınea indicando la carta, empezando por la que juega de su

    mano.

    Ejemplo de entrada

    23C 6B 9E 2O 7

    B 7O 102O 7B 9C 5B 6E 4

    Salida correspondiente al ejemplo

    3O 7C 6E 20

    Archivos de entrada y salida

    El archivo ejecutable deberá leer los datos del problema y escribir la soluci ón en los siguientesarchivos de entrada y salida respectivamente:

    -  Entrada: cpeui08 Escoba.txt

    -  Salida: cpeui08 Solucion Escoba.txt

  • 8/18/2019 Concurso de programación 2008

    3/6

    Concurso de programación 2008

    Escuela Universitaria de Informática

    Universidad Politécnica de Madrid

    Zapatero Entrenamiento 2 Nivel 2

    Un zapatero tiene   N   pedidos de clientes que debe entregar. El zapatero suele tardar variosd́ıas en completar cada pedido y, únicamente, puede trabajar en uno concreto cada d́ıa. Parael pedido   i−ésimo, el entero   T i   (1  ≤   T i   ≤  1000) determina el número de d́ıas que tardará el

    zapatero en finalizar el trabajo.

    Pero la popularidad tiene un precio. Por cada dı́a de demora en el inicio del trabajo en el pedidoi−ésimo, el zapatero se ha comprometido a pagar una compensacíon de   S i   (1  ≤   S i  ≤   10000)céntimos. Ayudemos al zapatero escribiendo un programa que determine el orden en que debede realizar los pedidos, para que la penalización total sea mı́nima.

    Entrada

    En la primera ĺınea se indica el número de casos de prueba. Cada caso de prueba sedescribe de la siguiente manera: una lı́nea con el número de pedidos  N   (1 ≤ N  ≤ 1000) y,para cada uno de los pedidos, una ĺınea con el tiempo de finalización y la compensacióneconómica del pedido, separados por un espacio.

    Salida

    Para cada caso de prueba el programa deberá escribir la secuenciación de los pedidos(representados por su posición en la entrada) que conlleva la menor compensación posible:un pedido (entero) en cada ĺınea. Si existen varias soluciones posibles, se considerará laprimera en orden lexicográfico.

    Ejemplo de entrada

    143 41 10002 25 5

  • 8/18/2019 Concurso de programación 2008

    4/6

    Salida correspondiente al ejemplo

    2134

    Archivos de entrada y salida

    El archivo ejecutable deberá leer los datos del problema y escribir la soluci ón en los siguientesarchivos de entrada y salida respectivamente:

    -  Entrada: cpeui08 Zapatero.txt

    -  Salida: cpeui08 Solucion Zapatero.txt

  • 8/18/2019 Concurso de programación 2008

    5/6

    Concurso de programación 2008

    Escuela Universitaria de Informática

    Universidad Politécnica de Madrid

    Partición Entrenamiento 2 Nivel 3

    Sea   R   una región limitada por una curva poligonal con lados horizontales y verticales, convértices de coordenadas enteras y descrita en sentido antihorario. Considerando particiones deR  en rectángulos de altura 1, se trata de determinar el número de rectángulos de la partición

    de cardinal mı́nimo. En el ejemplo siguiente la respuesta es 27.

    Entrada

    En la primera ĺınea se indica el número de casos de prueba. Para cada caso de prueba: enuna ĺınea se indica el número de vértices de la poligonal,   n, y en las siguientes  n   ĺıneasaparecen las coordenadas de los vértices (dos enteros entre 0 y 100 separados por unespacio).

    Salida

    Una ĺınea por cada uno de los casos de prueba indicando la solución.

  • 8/18/2019 Concurso de programación 2008

    6/6

    Ejemplo de entrada

    2100 02 0

    2 13 13 22 22 31 31 10 1120 0

    2 02 24 24 13 13 05 05 41 41 30 3

    Salida correspondiente al ejemplo

    36

    Archivos de entrada y salida

    El archivo ejecutable deberá leer los datos del problema y escribir la soluci ón en los siguientesarchivos de entrada y salida respectivamente:

    -  Entrada: cpeui08 Particion.txt

    -  Salida: cpeui08 Solucion Particion.txt