0% encontró este documento útil (0 votos)
131 vistas20 páginas

ProblemSet CodingCup 2023

Este documento presenta 5 problemas de programación competitiva con sus respectivas descripciones. Cada problema incluye detalles sobre la entrada, salida y límites. Los problemas van desde calcular el puntaje más alto entre dos personas hasta determinar si es posible formar una palabra con un conjunto de letras dado.

Cargado por

Alex
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd
0% encontró este documento útil (0 votos)
131 vistas20 páginas

ProblemSet CodingCup 2023

Este documento presenta 5 problemas de programación competitiva con sus respectivas descripciones. Cada problema incluye detalles sobre la entrada, salida y límites. Los problemas van desde calcular el puntaje más alto entre dos personas hasta determinar si es posible formar una palabra con un conjunto de letras dado.

Cargado por

Alex
Derechos de autor
© © All Rights Reserved
Nos tomamos en serio los derechos de los contenidos. Si sospechas que se trata de tu contenido, reclámalo aquí.
Formatos disponibles
Descarga como PDF, TXT o lee en línea desde Scribd

A.

El Puntaje más Alto


Autor: Luis Andrés Gutiérrez Calderón

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
Karel y Espino decidieron aprender programación competitiva para mejorar sus
habilidades lógicas y de programación.
Después de tomar la primera clase en el club de programación de su Universidad,
están listos para enviar su primer problema a un juez online. Sin embargo, al
enviar su primera solución es posible que no hayan obtenido los dos el mismo
resultado.
Dado el puntaje obtenido por Espino y el puntaje obtenido por Karel, tendrás que
decir quién tiene el mayor puntaje de los dos ó si empataron con el mismo puntaje.

Entrada
2 números enteros. El primero representa el puntaje obtenido por Espino y el
segundo el puntaje obtenido por Karel.

Salida
Una única línea con el texto “ESPINO” o “KAREL”, dependiendo quien obtuvo un
puntaje más alto. En caso de ambos tener el mismo puntaje imprimir “EMPATE”.

input output
100 98 ESPINO
50 80 KAREL

Limites
• Cada puntaje irá de 0 a 100.

Página 1 de 20
B. Cartulina
Autor: Saúl Germán Gutiérrez Calderón

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 500ms Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10 KiB

Ah, pero qué tiempos aquellos donde se te olvidaba traer la cartulina. Estás en tu
primer año en tu Tecnológico local, y olvidaste por completo tu tarea de
implementar una calculadora en la línea de comandos. La tarea se entrega en
media hora, así que apresurate a implementar una.

Entrada
En la primera línea una expresión a evaluar, incluyéndo únicamente enteros
positivos separados por los operadores +, -, * y /, representando suma, resta,
multiplicación y división. La línea siempre empezará con un dígito / número.

Salida
El resultado de evaluar la línea de entrada.

Ejemplo
input output
2+2 4
10/4 2.5
2*2+10/4-8 -1.5

Límites
• Habrá a lo más 20 caracteres en la entrada.
• Para el 50% de los casos, habrá a lo más un operador (+, -, *, /) en la
entrada.
• Para el 50% de los casos restante podrá haber más de un operador en la
entrada.

Página 2 de 20
C. Jefe Final
Autor: Luis Andrés Gutiérrez Calderón

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
Después de jugar tu RPG favorito durante todo el Verano (muchas horas al día)
por fin has llegado al último nivel de la historia principal donde te enfrentaras al
jefe final de esta aventura.
Durante tu aventura desarrollaste tu personaje principal para especializarse en la
defensa, es por eso que tu estrategia para este ultimo nivel solo será recibir golpes
y cansar al jefe final. Al llegar a este ultimo nivel cuentas con 𝐻 puntos de vida, el
Jefe final tiene una fuerza de golpe de 𝑃 puntos y el nivel consta de 𝐾 turnos, en
los que en cada turno el Jefe final te atacara con fuerza 𝑃.
Para ir más preparado compraras pociones que te podrán curar la vida y un
escudo mágico para aumentar tu defensa. Las pociones que venden en la tienda
de equipamiento se encuentran en una repisa y cada una tiene un valor de
curación 𝑎𝑖 . Pero por las reglas de la tienda no puedes comprar las pociones que
quieras, tienes que comprarlas en orden, es decir si quieres comprar 4 pociones
tendrás que comprar las primeras 4 pociones de la repisa, independientemente de
su valor de curación y si quieres comprar 𝑀 pociones tendrán que ser las primeras
𝑀 del estante. Para usar las pociones durante el combate aplican las mismas
reglas que al comprarlas, es decir tendrás que usarlas en el orden que las
compraste. Adicional a esto podrás usar la cantidad de pociones que quieras
siempre y cuando sea en orden de compra y después de un ataque del Jefe Final.
Como la defensa es tu especialidad, tienes una habilidad que te permite tener más
puntos de vida de con los que cuentas inicialmente, si estos son incrementados
con pociones.
Finalmente el escudo mágico reducirá cada golpe del Jefe final en el valor 𝑆 del
escudo, por lo que cada golpe tendrá una nueva fuerza de 𝑃 − 𝑆. Puedes comprar
el escudo con cualquier valor 𝑆 que quieras entre 0 y 𝑃 − 1.
Como invertiste mucho tiempo en este juego, quieres terminarlo de la mejor forma
posible, en “Modo Legendario”, para esto tienes que usar el valor 𝑆 de escudo más
pequeño posible con la mínima cantidad de pociones posible.

Página 3 de 20
Entrada
La primera línea de entrada consiste de un entero 𝑁 que representa la cantidad de
pociones disponibles. En la segunda línea habrá 𝑁 números que representan el
valor de curación 𝑎𝑖 que te otorga cada poción.
En la tercera línea de entrada habrá 3 enteros, 𝐻, 𝐾, 𝑃 descritos anteriormente.

Salida
En la primera línea de salida un mensaje indicando la cantidad mínima de
pociones utilizadas con el formato ‘POCIONES: valor’ como se muestra en el
ejemplo.
En la segunda línea un mensaje indicando el valor mínimo del escudo mágico en
el siguiente formato: ‘ESCUDO: valor’ como se muestra en el ejemplo.
Nota
Si tu nivel de vida llega a ser menor o igual a cero, ya no te podrás curar y el juego
habrá terminado. Es decir, no te puedes curar después de que tu vida sea cero.

input output
5 POCIONES: 1
12345 ESCUDO: 30
450 15 60
6 POCIONES: 4
5 2 5 15 1 15 ESCUDO: 22
400 15 50

Limites
Subtask 1 → 50 puntos
• 1 ≤ 𝑁 ≤ 100
• 1 ≤ 𝐻 ≤ 1000
• 1 ≤ 𝐾 ≤ 100
• 1 ≤ 𝑃 ≤ 1000
• 1 ≤ 𝑎𝑖 ≤ 300
Subtask 2 → 100 puntos
• 1 ≤ 𝑁 ≤ 10^5
• 1 ≤ 𝐻 ≤ 10^9
• 1 ≤ 𝐾 ≤ 10^6
• 1 ≤ 𝑃 ≤ 10^9
• 1 ≤ 𝑎𝑖 ≤ 10^7

Página 4 de 20
D. Villa Palabras
Autor: David Morals Orozco

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
En una pequeña y acogedora ciudad llamada Villa Palabras, todos los años se
celebraba un emocionante concurso de palabras llamado “El Desafío de las
Letras”. Los habitantes de la ciudad se reunían para poner a prueba sus
habilidades lingüísticas y su destreza mental. En el corazón de la ciudad se
encontraba la Plaza de las Palabras, donde se erigía un majestuoso escenario
adornado con letras gigantes. En este escenario tenía lugar uno de los juegos más
esperados del año dentro del desafío de las letras el famoso juego del horcado.
Los concursos se han ido registrando en hojas de papel pero se perdió quienes
fueron los ganadores, por eso ahora se te pide que puedas ayudar a realizar un
programa de computadora que permita dado un conjunto de letras, verificar si
puedes formar o no la palabra buscada, para descubrir si en ese concurso en
particular se gano o se perdió, en el ejemplo se puede ver cómo ganas si no
conoces el juego del ahorcado.

Entrada
La primera línea es un número N que representa el número de casos de prueba a
continuación 2*N Líneas en la que la primer línea son las letras con las cuales se
intenta adivinar la palabra, la siguiente línea es la palabra a adivinar.

Salida
La palabra WIN o la palabra LOSE, dependiendo de lo que se describe en el
problema.

Ejemplo
input output descripción
2 WIN
FJLMNOPE LOSE En la primera línea el número 2 indica la cantidad de casos
de prueba que se deben considerar. En este caso, hay dos
casos de prueba que siguen a continuación.
MOLE
FTLMNOPE En el primer caso de prueba:

Página 5 de 20
input output descripción
TIO El conjunto de letras disponibles es FJLMNOPE
La palabra a verificar es MOLE

En el segundo caso de prueba:


El conjunto de letras disponibles es FTLMNOPE
La palabra a verificar es TIO

Para el primer caso la salida será la palabra WIN, ya que con


las letras disponibles se puede formar la palabra buscada.

Para el segundo caso no se encuentra la letra I, para formar


la palabra TIO, por lo tanto el resultado es LOSE

1 WIN
LAPFG
PAPA

1 LOSE
LEPFG
PAPA

Notas
Si una palabra ocupa más de una misma letra, si solamente se indica una, es
suficiente para ganar por ejemplo, para el conjunto de letras PA y la palabra a
buscar era PAPA el resultado es WIN

Límites
• 1 ≤ 𝑁 ≤ 20
• Cada línea de caracteres es mayor o igual a 1 y menor o igual a 20
caracteres

Página 6 de 20
E. Calificaciones del TecNM
Autor: Luis Germán Gutiérrez Torres

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
El Tecnológico Nacional de México cuenta con más de 250 planteles distribuidos
en todo el país y desea concentrar las calificaciones de los alumnos de todos los
planteles. Te han asignado la tarea de obtener algunas estadísticas a partir de ese
concentrado de calificaciones.
Las calificaciones aprobatorias del TecNM se registran en un rango de entre 70 y
100. Cualquier calificación reprobatoria (menor a 70), se registrará como 0
(CERO) en el sistema. No puede haber calificaciones de 45, 57 o 68, estos tres
ejemplos se registrarían como 0 (CERO) porque son calificaciones reprobatorias.
Desarrolla un programa que lea todas las calificaciones y calcule los siguientes
datos:
1. El promedio general de calificaciones de todo el TecNM redondeado a dos
decimales. El promedio general es igual a la suma de todas las
calificaciones del TecNM dividida entre el número de calificaciones.
2. La calificación que más se repite en todo el TecNM (si hay varias que más
se repiten, regresar la calificación más alta)
3. Para cada campus que se capturó, imprimir una línea que contenga: el
promedio de calificaciones redondeado a dos decimales, la calificación que
más se repite (si hay varias que más se repiten, regresar la calificación más
alta), la cantidad de calificaciones aprobatorias y la cantidad de
calificaciones reprobatorias. Estos cuatro datos se deben imprimir en una
sola línea separados por un espacio.

Entrada
La información se te entregará de la siguiente manera, primero, tendrás un
número N que corresponde al número de campus que van a reportar las
calificaciones (no todos los planteles las reportan). Por cada uno de los N
planteles se te entregará C , que representa la cantidad de calificaciones del
plantel y posteriormente, en el siguiente renglón tendrás una cantidad C de
calificaciones separadas por un espacio.

Página 7 de 20
Salida
En la primer línea, el promedio de calificaciones de todo el TecNM redondeado a
dos decimales. En la segunda línea, la calificación que más repite de acuerdo a
las especificaciones. En las siguientes N línea: promedio de calificaciones del i
esimo campus redondeado a dos decimales, la calificación que más se repite del i
ésimo campus, la cantidad de materias reprobadas y la cantidad de materias
aprobadas. Todo debe estar separado por un espacio.

Ejemplo
input output descripción
2 74.00
2 100
0 80 40.00 80 1 1
3 96.67 100 3 0
100 90 100
1 63.71
7 94
94 80 94 95 0 0 83 63.71 94 5 2

Límites
1≤ N ≤ 250
1 ≤ C ≤ 1000

Página 8 de 20
F. Barbieland
Autor: Araceli Velázquez Gutiérrez

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 350ms Límite de tiempo (total) 10s

Tamaño límite de entrada (bytes) 10 KiB

Descripción
En el mundo rosa ha ocurrido un desastre, los Kens se han rebelado y es
necesario que Barbie emprenda una cruzada épica por el reino para recuperar
aliadas y revertir el hechizo que, entre otras cosas, ha estropeado los pies de
Barbie y ahora solo puede caminar en línea recta.

Problema
Barbie solo podrá hablar con las amigas que se encuentren en línea recta entre su
casa y la ubicación de la suprema corte

Datos de entrada
La primera línea contiene las coordenadas de la casa de Barbie y las coordenadas
de la Suprema Corte. La siguiente línea contiene la cantidad de amigas 𝐵 que
están dispersas en el Kengdon. En las siguientes 𝐵 líneas se indica la posición 𝑥,
𝑦 de la 𝑖-ésima amiga.

Salida
Cantidad de amigas que Barbie podrá convencer de volver a su equipo.

Ejemplos
input output
0 10 20 10 3
6
1 10
2 10
2 15
55
66
9 10

Página 9 de 20
input output
0 0 20 20 5
10
11
22
23
24
33
44
21 21
22 22
23 23
55

Límites
1 <= 𝐵 <= 1000
1 <= 𝑥,𝑦 <= 10000

Consideraciones
Para un 25% de los casos el camino se encuentra paralelo al eje X.
En otro 25% de los casos, el camino es perpendicular al eje X.

Página 10 de 20
G. Espino Supermarket
Autor: Patricia Vega Flores

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
Jairo el espino almacenista trabaja en un supermercado y se encarga de
acomodar los productos que se compran a los proveedores, así como de evitar a
toda costa (dentro de sus posibilidades) las mermas por productos caducados, de
modo que Jairo se ha ingeniado un mecanismo que le facilita el trabajo y a la vez
le asegura que los primeros productos que se venden sean los que tienen la fecha
de caducidad más cercana.
El mecanismo que ha implementado consiste en que los productos los coloca
apilados junto a la pared en columnas con una estiba máxima de 5 cajas, que le
ayuda tanto a mantener una altura accesible para él, como para evitar el daño de
productos. Para la colocación de los productos ha decidido que la columna más
cercana a la puerta del almacén siempre tendrá los productos más cercanos a
caducarse y aprovecha la banda de desplazamiento para que cada vez que
termine de tomar los productos de una columna, puede acercar el resto hacia la
puerta del almacén. Por tanto, Jairo nunca tomará un producto de una columna de
la derecha mientras aún exista algún producto en la primera columna.
Mientras más en la cima y más a la izquierda esté la columna sobre la que se
encuentra el producto, tiene una fecha de caducidad más corta, por el contrario los
productos más duraderos están ubicados en la columna más a la derecha y en la
parte inferior.
Jairo es muy exigente con los proveedores que surten el supermercado, de modo
que cada vez que le llega un pedido las fechas de caducidad son siempre iguales
o mayores a la fecha de caducidad del producto más duradero que tiene en el
almacén. Pero para no tener que reajustar las última columna de productos que
tiene en el almacén, los productos nuevos del pedido siempre comienzan a
acomodarse en una nueva columna.
El empaque de cada producto tiene siempre a la vista la fecha de caducidad y un
número de producto, y tomando esto en cuenta Jairo se ha obsesionado con
acomodar los productos con la misma fecha de caducidad de forma descendente
de acuerdo al número de producto. Es decir, si los productos de una columna
tienen la misma fecha de caducidad, estará más arriba el producto con número
más alto y más al fondo el producto con el número de producto más bajo.

Página 11 de 20
Ayuda a Jairo a realizar las operaciones de entrada y salida del almacén, así como
a verificar en todo momento el estado del almacén. Se debe asumir que el
almacén al inicio se encuentra vacío.

Entrada
En la primera línea, un entero N que representa la cantidad de operaciones a
realizar en el almacén, seguida por N líneas de operaciones O que pueden
definirse como: C (compra), V (venta) o E (consulta del estado del inventario).
• Cuando la operación sea C, en la misma línea se indicará el número de
productos P recibidos en el pedido, seguidos por P líneas cada una con un
entero I que representa el número del producto seguido de la fecha de
caducidad F del paquete, con el formato YYYY-MM-DD.
• Cuando la operación sea V, en la misma línea se indicará un entero U que
indica la cantidad de unidades a vender y que Jairo deberá retirar del
almacén en el orden adecuado.
• Por último, en caso de que la operación sea E, se deberá generar una
salida que muestre la distribución de los productos.

Salida
Para toda operación E, se deberá imprimir el estado del almacén mostrando el
acomodo de los productos en el almacén a través de la impresión del número I del
producto (se puede considerar que este número es un entero de máximo 3 dígitos
y que nunca se repite para la misma fecha de caducidad). La impresión deberá
mostrar siempre los números de producto alineados a la derecha para cada
columna del almacén.

Ejemplo
input output
4 23
C7 10
1 2024-03-03 1
60 2024-03-20 14 60
12 2024-03-13 12 15
23 2024-03-01
15 2024-03-24
14 2024-03-13
10 2024-03-02 60
E 15
V5
E

Página 12 de 20
input output

4 23
C7 10
1 2024-03-03 1
600 2024-03-20 14 600
12 2024-03-13 12 1
23 2024-03-01
1 2024-03-24
14 2024-03-13 1
10 2024-03-02 14 600
E 12 1
V2
E

Límites
• 1 ≤ N ≤ 1000
• 1 ≤ I < 1000
• 1 ≤ P,U ≤ 1000000
• 1900-01-01 ≤ F ≤ 2050-12-31

Página 13 de 20
H. Salarios
Autor: Ulises Méndez Martínez

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1.5s Límite de tiempo (total) 30s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
Antonio consiguió el trabajo de sus sueños en el departamento de Recursos
Humanos en la Increíble Comercializadora y Productora de Caramelos (ICPC).
La ICPC esta compuesta por 𝑁 empleados (numerados con IDs del 1 al 𝑁), en
donde todos tienen un jefe directo a excepción del CEO. ICPC siempre busca la
manera de tener a sus empleados contentos y por ello aplicará dos nuevas reglas
a sus salarios:
1. Por cada 7 pesos que gané el CEO, el empleado con menor sueldo debe
ganar al menos 1 peso (Nota: Para este punto se considerará la división
entera, i.e. si el CEO gana de 7 a 13 pesos todo empleado debe ganar al
menos 1).
2. Todos los jefes deben tener un salario estrictamente mayor a sus
subordinados.
Le han encargado a Antonio el cálculo de la cantidad mínima a invertir en
aumentos salariales para adoptar estas reglas. Antonio esta un poco preocupado
así que te ha pedido ayuda para calcular esta cifra.

Entrada
La primera línea contiene un entero 𝑁; el número de empleados. A continuación 𝑁
líneas, cada una con dos enteros separados por un espacio (𝐽𝑖 , 𝑆𝑖 , 1 ≤ 𝑖 ≤ 𝑁) qué
indican el ID del jefe y el salario actual del empleado 𝑖.
Nota: Un ID 0 como jefe indica que el empleado es el CEO y por lo tanto no tiene
un jefe directo.

Salida
Una única linea con la cantidad mínima a invertir en aumentos.

Ejemplos
input output descripción

Página 14 de 20
input output descripción
2 1 En este caso hay solo dos empleados y el empleado con ID 2 debe
recibir un
0 14 aumento de 1 peso.
11
3 2 En este caso el CEO (para ganar más que el empleado con ID 2) y
el empleado con
0 13 ID 3 (después del aumento del CEO) deben recibir ambos un
aumento de 1 peso.
1 13
11

Límites
• 1 ≤ 𝑁 ≤ 100
• 1 ≤ 𝑆𝑖 ≤ 100000 para 1 ≤ 𝑖 ≤ 𝑁

Página 15 de 20
I. Atsa y las Insignias
Autor: Orlando Isay Mendoza García

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 800ms Límite de tiempo (total) 14s

Tamaño límite de entrada (bytes) 10 KiB

Descripción
Atsa acaba de iniciar una compañía de manufactura de insignias.
Como apenas está comenzando, solo tiene disponible un tipo de armazón para las
insignias. Dicho modelo consta de dos bloques de rombos dispuestos en forma
piramidal. Como se observa en la imagen, el armazón puede ajustar el número de
niveles de los bloques piramidales.

Ejemplo de armazones
El tamaño del armazón 𝑁 equivale a la cantidad de rombos en los extremos, en la
imagen se muestran armazones de tamaño 4, 6 y 8 respectivamente.
Sobre el armazón se pueden montar piezas metálicas rectangulares alineadas con
los ejes. Para cada insignia, Atsa cuenta con la materia prima exacta para cubrir el
armazón.
Además, Atsa cuenta con una máquina que permite moldear el metal en placas
rectangulares de dimensiones enteras. Dado que usar dicha máquina es costoso y
tardado, Atsa ha decidido limitar la cantidad de piezas metálicas por insignia a un
máximo de 𝑁.

Página 16 de 20
Aún bajo estas restricciones, existen bastantes diseños de insignias posibles para
un tamaño dado. En la siguiente imagen se muestran 4 de 15 formas distintas de
cubrir un armazón de tamaño 6.

Ejemplos de formas de cubrir un armazón de tamaño 6


Como podrás imaginar, contar todas las formas es muy difícil si no se cuenta con
una estrategia adecuada. Atsa no tiene ni idea de cómo afrontar este problema,
así que te ha pedido que le ayudes a solucionarlo.
Como nota adicional para el conteo de las formas, considera que dos diseños de
insiginas son iguales si tienen el mismo acomodo de piezas después de girarlas.
Como el número de diseños puede ser bastante grande, imprímelo módulo 109 +
7.

Entrada
Un entero 𝑁 que indica el tamaño del armazón.

Salida
Un solo entero que representa la cantidad de diseños para insignias de tamaño 𝑁,
modulo 109 + 7.

Ejemplos
Entrada Salida
6 15
8 105

Límites
• 1 ≤ 𝑁 ≤ 105 .
• 𝑁 siempre es par.

Página 17 de 20
J. Final de Campeonato
Autor: Moisés Osorio

Puntos 100 Límite de memoria 32 MiB


Límite de tiempo (caso) 1s Límite de tiempo (total) 1m0s

Tamaño límite de entrada (bytes) 10


KiB

Descripción
Aunque amas la programación, tu pasatiempo favorito es entrenar niños a jugar
futbol y, después de años de dedicación, has logrado que tu equipo llegue a la
final del campeonato nacional.
Parte de tu éxito como entrenador ha sido preparar a varios niños en muchas
posiciones diferentes, así como en recolectar y analizar datos de todos los
jugadores del torneo, lo que te ha ayudado a tomar decisiones estratégicas muy
certeras al reacomodar a tus jugadores.
Afortunadamente para ti, el equipo contrario ha cometido un gran error: ¡dió a
conocer en sus redes sociales, una hora antes de iniciar la final del campeonato,
algunos jugadores que estarán en la alineación inicial! Eso te da suficiente tiempo
para diseñar una estrategia específica que te permita maximizar tus oportunidades
de ganar el campeonato.
Usando un poco de minería de datos, has podido definir, por cada uno de tus
jugadores, a cuáles jugadores del equipo contrario puede contener o superar en
un mano a mano. Sabes que la dinámica de equipo también es importante, pero
eso no te preocupa pues todos tus jugadores se complementan excelentemente.
Para complicar más tus decisiones, algunos niños no vienen en condiciones
óptimas de energía, ya que el viaje a la final ha sido largo o cuentan con lesiones
menores. Por lo tanto, has decidido otorgarle un número de energía a cada niño
para simplificar la situación un poco.
Aprovechando tus habilidades de programación, crearás un programa que te diga
la combinación de tus jugadores que maximice el número de jugadores contrarios
que pueda superar o contener en un mano a mano, ya que a cada uno le
asignarás un solo contrincante a cubrir, así como maximizar la suma total de
energía de dicha combinación.
Tu portero es toda una estrella, así que no tienes que preocuparte por elegir uno
diferente.

Página 18 de 20
Entrada
La primera línea tendrá dos enteros 𝑁 y 𝐸, que definen el número de jugadores
que tienes a tu disposición y el número de jugadores que el equipo contrario dió a
conocer y jugarán la final, respectivamente.
La segunda línea tendrá los nombres de los 𝐸 jugadores del equipo contrario que
jugarán la final.
Las siguientes 𝑁 líneas detallarán los datos de cada uno de tus jugadores 𝑖 con el
formato 𝑛𝑜𝑚𝑏𝑟𝑒𝑖 𝑒𝑛𝑒𝑟𝑔𝑖𝑎𝑖 𝐶𝑖 𝑐𝑜𝑛𝑡𝑟𝑖𝑛𝑐𝑎𝑛𝑡𝑒1 𝑐𝑜𝑛𝑡𝑟𝑖𝑛𝑐𝑎𝑛𝑡𝑒2 . . . 𝑐𝑜𝑛𝑡𝑟𝑖𝑛𝑐𝑎𝑛𝑡𝑒𝐶𝑖 ,
donde 𝑛𝑜𝑚𝑏𝑟𝑒𝑖 es el nombre del jugador 𝑖, 𝑒𝑛𝑒𝑟𝑔𝑖𝑎𝑖 su nivel de energía, 𝐶𝑖 el
número de contrincantes que puede contener o superar, y los siguientes
𝑐𝑜𝑛𝑡𝑟𝑖𝑛𝑐𝑎𝑛𝑡𝑒𝑗 son los nombres de cada uno de dichos contrincantes.

Salida
𝐸 líneas con los nombres, ordenados alfabéticamente, de cada uno de tus
jugadores que deberás seleccionar para jugar la final del campeonato. En caso de
que varias combinaciones de jugadores maximicen la cantidad de jugadores
contrarios que puede enfrentar, se deberá elegir la que tenga la mayor suma de
energía y, si aún así hay empates, se deberá elegir la primera opción en orden
lexicográfico.

Ejemplo
input output descripción
42 carlos Sólo sabes de 2 jugadores contrarios que participarán, por lo
que debes escoger a dos jugadores de los tuyos que puedan
hacerle frente a dichos jugadores. alberto está lleno de
energía pero no le puede hacer frente a los contrarios. beto si
puede con ambos jugadores contrarios, pero no tiene mucha
energía. La mejor combinación es carlos con daniel ya que
ambos suman 50 puntos de energía y le hacen frente a ambos
jugadores contrarios entre los dos.
ronaldo daniel
messi
alberto
100 0
beto 10 2
ronaldo
messi
carlos 20
1 ronaldo
daniel 30
1 messi
42 alberto Nadie puede hacerle frente a messi, por lo que tienes que

Página 19 de 20
input output descripción
enfocarte en ronaldo, el cual puede ser enfrentado por alberto
con la máxima energía. Aún así, necesitas escoger a otro
jugador aunque no puedas contra messi, por lo que escoges a
daniel, quien tiene más energía de los jugadores disponibles.
ronaldo daniel
messi
alberto
100 1
ronaldo
beto 10 1
ronaldo
carlos 20
1 ronaldo
daniel 30
0

Límites
• 1 ≤ 𝑁 ≤ 20
• 1 ≤ 𝐸 ≤ 10
• 𝐸≤𝑁
• 0 ≤ 𝐶𝑖 ≤ 𝐸
• 0 ≤ 𝑒𝑛𝑒𝑟𝑔𝑖𝑎𝑖 ≤ 100
• Los nombres de los jugadores serán únicos (ningún par de jugadores
diferentes se llamará igual) y consistirán sólo de letras minúsculas sin
espacios, además de tener una longitud de entre 1 y 10 caracteres
• 𝑐𝑜𝑛𝑡𝑟𝑖𝑛𝑐𝑎𝑛𝑡𝑒𝑐𝑖 siempre será uno de los jugadores contrarios dados

Página 20 de 20

También podría gustarte