1. Universidad Nacional de San
Antonio Abad del Cusco
5to-CusContest
PROBLEM SET
S´bado 19 de Octubre del 2013
a
Este conjunto de problemas contiene 8 problemas
Organizado por : ACM-Chapter Cusco
Auspiciadores :
Cusco - Per´
u
2. 5to-CusContest
UNSAAC
Problema A
Hace unos d´ Yajirobe (un estudiante de Computaci´n) se encontr´ con Karin(viejo
ıas,
o
o
amigo de Yajirobe) y empezaron a conversar, en ello, Yajirobe le coment´ algo que le ten´
o
ıa
pensativo durante mucho tiempo.
Pienso que (Yajirobe) soy bueno entendiendo nuevas tecnolog´as y us´ndolas
ı
a
en soluciones a diversos tipos de problemas, al menos eso es lo que pienso.
Pero, creo que cuando me enfrento a problemas un poco m´s complejos, mi
a
l´gica empieza a fallar. Yo pienso que necesito m´s pr´ctica para mejorar
o
a
a
esa falencia que tengo, pero nadie est´ dispuesto a brindarme su tiempo y
a
ayudarme.
Karin, de la manera m´s simple posible me coment´ un poco de como hab´ empezado
a
o
ıa
en la programaci´n y como es que su l´gica se desarroll´. Luego de un largo rato de
o
o
o
conversaci´n, ´l se propuso brindarle su apoyo. La idea de Karin era darle un reto que
o e
implique usar la l´gica y razonamiento para poder responder una serie de preguntas que
o
´l formular´
e
ıa.
El problema es que Karin ahora anda muy ocupado con sus asuntos de trabajo, puesto
que lleg´ un muchachito llamado Gok´ para ser entrenado. As´ que, muy amablemente
o
u
ı
te pide por favor que lo ayudes porque sabe del potencial de Yajirobe (Karin piensa que
solo se necesita que Yajirobe gane un poco de confianza). Buscando juegos l´gicos por
o
internet, se top´ con el siguiente puzzle:
o
Tenemos 5 casas de cinco colores diferentes y en cada una de ellas vive una
persona de una nacionalidad diferente. Cada uno de los due˜os bebe una bebida
n
diferente, fuma una marca de cigarrillos diferente y tiene una mascota diferente.
Contamos con las siguientes claves:
El brit´nico vive en la casa roja.
a
El sueco tiene un perro.
El dan´s toma t´.
e
e
La casa verde esta a la izquierda de la blanca.
El due˜o de la casa verde toma caf´.
n
e
La persona que fuma Pall Mall tiene un p´jaro.
a
El due˜o de la casa amarilla fuma Dunhill.
n
El que vive en la casa del centro toma leche.
2
3. 5to-CusContest
UNSAAC
El noruego vive en la primera casa.
La persona que fuma Brends vive junto a la que tiene un gato.
La persona que tiene un caballo vive junto a la que fuma Dunhill.
El que fuma Bluemasters bebe cerveza.
El alem´n fuma prince.
a
El noruego vive junto a la casa azul.
El que fuma Brends tiene un vecino que toma agua.
El puzzle parece muy interesante, porque se necesita paciencia para resolverlo. Por eso,
Karin formular´ una serie de preguntas(con respecto al puzzle anterior) para proponerlas
a
a Yajirobe, pero Karin necesita saber las respuestas y de acuerdo a ello ayudar a su viejo
amigo.
Tu tarea es simple, responder a las preguntas de Karin.
Entrada
El archivo de entrada contiene varios casos de prueba. La primera l´
ınea de cada
caso de prueba contiene un entero N indicando, respectivamente, el n´mero de casos
u
de preguntas que deber´s responder (1 ≤ N ≤ 20). Las siguientes l´
a
ıneas contienen una
cadena de caracteres XYZ compuesta por caracteres en min´sculas la cual indicar´ que
u
a
se formul´ una de las siguientes preguntas:
o
“¿Quien vive en la XYZ casa?”
“¿Quien toma XYZ?”
“¿Quien vive a la derecha de la casa de color XYZ?”
“¿Quien vive a la izquierda del que tiene un XYZ como mascota?”
“¿Cual es la nacionalidad de quien gusta de fumar XYZ?”
Como te habr´s dado cuenta, Karin no quiere que te compliques la vida, as´ que solo
a
ı
formul´ 5 preguntas. Debes de suponer que todas las preguntas est´n bien formuladas y
o
a
XYZ tomar´ solo los posibles valores para que la pregunta est´ bien formulada.
a
e
3
4. 5to-CusContest
UNSAAC
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea conteniendo la respuesta
en min´ sculas, sin tildes.
u
Ejemplo de Entrada
Ejemplo de salida para la entrada
3
primera
te
prince
noruego
danes
aleman
4
5. 5to-CusContest
UNSAAC
Problema B
En las clases de Estructuras de Datos, como es de saberse, los proyectos que se dejan
normalmente se desarrollan de manera grupal para que de alguna forma se logre motivar
a los estudiantes a trabajar y compartir ideas, lo cual ayuda en el proceso de aprendizaje
y refuerza aspectos de la vida profesional. Hace muy poco, el docente encargado del curso,
mientras ense˜aba la estructura de datos llamado Heap de Fibonacci (usado en una
n
variante del algoritmo Dijsktra donde la tarea es buscar la ruta m´
ınima entre 2 v´rtices
e
de un grafo conexo y ac´
ıclico) decidi´ dejar a sus alumnos como tarea la implementaci´n
o
o
de dicha estructura. Como el trabajo es grupal, el profesor quiere restringir el modo de
como se forman normalmente los grupos (que es por un m´ximo n´mero de integrantes
a
u
por grupo) a lo siguiente: La suma de las edades de los integrantes de un grupo no debe
de ser mayor a un valor K. El problema es que el profesor quiere saber cuantos grupos
como m´
ınimo se pueden formar para un valor dado de K y de acuerdo a ello distribuir
su tiempo para revisar los trabajos. Si K es muy grande, quiz´ la mitad del sal´n pueda
a
o
formar parte de solo un grupo!, pero si K es muy peque˜o, es posible que cada grupo
n
est´ conformado por solo un estudiante. Aunque el c´lculo del valor K se puede hacer a
e
a
mano, resulta algo tedioso en caso de que el docente piense en futuros trabajos que sigan
la misma metodolog´
ıa.
Lamentablemente el docente se encuentra muy ocupado preparando una charla sobre
Red-Black Tree, y no tiene mucho tiempo para dise˜ar un algoritmo que le ayude en la
n
b´squeda del valor K, as´ que tienes que ayudar al docente. Se te dar´ la descripci´n de
u
ı
a
o
las edades de los alumnos de la clase de Estructuras de Datos junto con un valor K, y tu
tarea es formar el m´
ınimo n´mero de grupos posibles que cumplan con la condici´n antes
u
o
expuesta. Con esto ayudaras al docente a elegir el valor de K seg´n el mejor criterio que
u
´l vea por conveniente. Y´ para otra oportunidad tu tarea ser´ elegir el valor K optimo.
e
a
a
´
Entrada
El archivo de entrada contiene varios casos de prueba. La primera l´
ınea de cada caso
de prueba contiene dos enteros N y K, donde N es el n´mero de alumnos que llevan el
u
curso de Estructuras de Datos, y K es el valor m´ximo que puede resultar la suma de
a
N
las edades de cada grupo (1 ≤ N ≤ 20, m´x Ei ≤ K ≤
a
1≤i≤N
Ei ). Los siguientes Ei enteros
i=1
(1 ≤ i ≤ N , 15 ≤ Ei ≤ 35) describir´n las edades de los N estudiantes.
a
La entrada termina cuando N = 0.
5
6. 5to-CusContest
UNSAAC
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea:
“Caso #T: M”(sin comillas)
donde T representa el n´mero de caso de prueba, y M el m´
u
ınimo n´mero de grupos que
u
se puede formar con el valor de K. Ver el ejemplo de salida para m´s detalles.
a
Ejemplo de Entrada
Ejemplo de salida para la entrada
5 35
15 20
10 70
19 21
22 20
21 23
4 47
16 18
0 111
Caso #1: 3
Caso #2: 4
Caso #3: 2
21 18 15
22 20
24 22
17 20
6
7. 5to-CusContest
UNSAAC
Problema C
Warnoldo est´ estudiando para el Exame Nacional para Ingresso na P´s-Gradua¸˜o
a
o
ca
em Computa¸˜o (POSCOMP). El examen esta dividido en 3 areas, Matem´tica, Fundaca
´
a
mentos de Computaci´n y por ultimo el ´rea de Tecnolog´ Normalmente, Warnoldo
o
´
a
ıas.
agarra pruebas pasadas y se pone a resolver problemas de Matem´tica.
a
Una vez, mientras estudiaba, se top´ con una pregunta que le llam´ la atenci´n, la
o
o
o
cual dec´ Determinar cuantas cadenas binarias de longitud N = 7 (strings
ıa:
conformados por 0s y 1s) se pueden formar, con la condici´n de que cada
o
cadena tenga al menos un par consecutivo de ceros.
Ahora nuestro amigo Warnoldo quiere ponerse a practicar con ese problema haciendo variar el valor de N . Luego de resolver unos cuantos ejercicios pide tu ayuda para
comprobar si los valores que ´l hall´ son correctos o no.
e
o
Entrada
El archivo de entrada contiene varios casos de prueba. Cada caso de prueba contiene
dos enteros N y R, donde N es la longitud de los string binarios que debes de formar
cumpliendo la condici´n antes expuesta y R es la respuesta de Warnoldo (1 ≤ N ≤
o
30
30, 1 ≤ R ≤ 2 ). El programa termina cuando N = 0 y R = 0.
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea indicando “YES” si la
respuesta de Warnoldo es correcta, o “NO” en caso contrario (ambas respuestas sin comillas).
Ejemplo de Entrada
Ejemplo de salida para la entrada
7 94
1 1
12 3718
20 1030865
0 0
YES
NO
NO
YES
7
8. 5to-CusContest
UNSAAC
Problema D
En la d´cada de 1990, hab´ un rumor que estaba relacionado con las palabras (cae
ıa
denas de caracteres). Se dec´ que una palabra era hecha por El grupo 3am(un grupo de
ıa
personas, cuya identidad real nadie conoc´ dedicado a revelar secretos de la humanidad)
ıa,
si y solamente si todos los caracteres estaban ordenados de manera creciente o decreciente.
Es decir, dada una palabra w = c1 c2 . . . cn de longitud n, w era una palabra hecha por El
grupo 3am si se cumpl´ cualquiera de las 2 condiciones: ∀i ∈ [1, n − 1] : ci < ci+1 o bien
ıa
∀i ∈ [1, n − 1] : ci > ci+1 .
Entrada
El archivo de entrada contiene varios casos de prueba. La primera l´
ınea de cada caso
3
de prueba contiene una palabra w (0 < |w| ≤ 10 ). w ser´ una palabra conformada por
a
unicamente letras del alfabeto ingl´s [a − z] ∪ [A − Z]. El programa debe de terminar
´
e
cuando se lea una cadena conformada por una asterisco (*). Ese caso de prueba no debe
de ser procesado.
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea indicando “YES” si la
palabra fue creada por El grupo 3am, o “NO” en caso contrario (ambas respuestas sin
comillas).
Ejemplo de Entrada
Ejemplo de salida para la entrada
informatica
algoritmo
RoMa
CusContest
Flor
*
NO
NO
YES
NO
YES
8
9. 5to-CusContest
UNSAAC
Problema E
En un pueblo italiano (muy lejano) al pie de las monta˜as vive nuestro amigo Marco
n
en una humilde morada. Se levanta muy temprano para ayudar a su buena mam´. Pero
a
un d´ la tristeza llega hasta su coraz´n. Mam´ tiene que partir cruzando el mar a otro
ıa
o
a
pa´
ıs.
Marco estaba muy preocupado por su mam´. Un d´ de regreso a casa luego de la
a
ıa,
escuela, su mono Amedio(conocido tambi´n como Peppino) muy travieso se escap´ de
e
o
Marco y fue a parar cerca de un grupo de personas las cuales estaban escuchando at´ntae
mente a un hombre. Marco, en seguida fue donde su monito y escuch´ decir que el hombre
o
ofrec´ un premio en efectivo muy grande a quien resuelva un peque˜o jueguito. Marco
ıa
n
pens´ que ´l podr´ resolver el problema que le dieran, y gast´ todo sus ahorros para
o
e
ıa
o
inscribirse en el juego de aquel hombre. Lamentablemente, Marco se inscribi´ sin saber
o
qu´ deb´ de hacer!
e
ıa
El hombre al recibir el dinero reci´n le cont´ de que trataba el juego. Ahora Marco
e
o
esta muy pensativo, el hombre le dijo que ma˜ana a la misma hora Marco tendr´ que
n
a
resolver el jueguito y tiene un d´ para entrenar y armar una estrategia. Por la ma˜ana
ıa
n
siguiente, Marco se encontr´ con su gran amiga Fiorina y le explic´ lo sucedido as´ como
o
o
ı
la descripci´n del juego:
o
Tienes una imagen dividida en 9 cuadros de 3 colores (rojo, azul y amarillo), como
una matriz de 3 × 3 (ver Figura 1). Cada cuadro puede cambiar de color, pero unicamente
´
el rojo cambia a amarillo, el amarillo a azul, y el azul a rojo. Este proceso es algo c´
ıclico,
es decir que si los cambios son C1 → C2 → C3 el siguiente cambio ser´ C3 → C1. Dentro
a
del juego est´ permitido un tipo de movimiento que consiste en tocar un cuadrado y ´ste,
a
e
autom´ticamente, se cambia de color al igual que sus adyacentes a excepci´n del cuadrado
a
o
central. El cuadrado central es un caso muy especial, porque s´lo puede ser cambiado por
o
movimientos que impliquen tocar el mismo cuadrado central. El objetivo del juego es
tratar de llegar de una configuraci´n dada a la configuraci´n inicial (ver Figura 1a).
o
o
Ambos tienen menos de 4 horas para que el tiempo se acabe. Tu labor de hoy ser´ ayua
dar a Marco y Fiorina a practicar con ese jueguito. Marco te dar´ una posible configua
raci´n de la imagen y quiere saber si es posible llegar a la configuraci´n inicial.
o
o
9
10. 5to-CusContest
UNSAAC
(a)
(b)
(c)
(d)
Figura 1: a) Configuraci´n inicial. b) Configuraci´n luego de haber presionado el cuadrado
o
o
de la posici´n (1, 1). Como se nota, los unicos cuadrados que cambian son (1, 1), y sus
o
´
adyacentes (1, 2), (2, 1) c) Configuraci´n luego de haber presionado el cuadrado de la
o
posici´n (2, 1). Los unicos cuadrados que cambian son (1, 1), (2, 1) y (3, 1), el cuadrado
o
´
de la posici´n (2, 2) no cambia (de acuerdo a la especificaci´n del juego). d) Configuraci´n
o
o
o
(especial) luego de haber presionado el cuadrado central. Cambia el mismo cuadrado(2, 2)
y sus adyacentes (1, 2), (2, 1), (2, 3), (3, 2).
Entrada
El archivo de entrada contiene varios casos de prueba. La primera l´
ınea de cada caso
de prueba contiene un entero N (0 < N ≤ 100). Los siguientes N casos contendr´n la
a
configuraci´n de la imagen.
o
Cada configuraci´n estar´ dada como una matriz de 3 × 3, donde el elemento de la
o
a
posici´n (i, j) puede tomar los valores de R, Y, B (rojo, amarillo y azul).
o
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea indicando “YES” si la
palabra fue creada por el grupo secreto C, o “NO” en caso contrario (ambas respuestas
sin comillas).
10
11. 5to-CusContest
UNSAAC
Ejemplo de Entrada
Ejemplo de salida para la entrada
4
RYR
YBY
RYR
RRR
RRR
RRR
RYY
YBB
RYB
RRY
YBR
RYY
YES
NO
NO
YES
N´tese que para el cuarto caso, uno de los posibles movimientos que Marco puede realizar para
o
llevar la imagen a la configuraci´n inicial ser´ de la siguiente forma:
o
ıa
Presionar el cuadrado de la posici´n (1, 1) una vez.
o
Presionar el cuadrado de la posici´n (1, 2) dos veces.
o
Presionar el cuadrado de la posici´n (2, 1) una vez.
o
Presionar el cuadrado de la posici´n (2, 3) una vez.
o
Presionar el cuadrado de la posici´n (3, 3) dos veces.
o
El primer caso es trivial, Marco no necesita realizar ning´n movimiento.
u
11
12. 5to-CusContest
UNSAAC
Problema F
source: SPOJ (Per´) judge
u
Una composici´n de un n´mero n es una secuencia ordenada de n´meros que suman
o
u
u
n, por ejemplo para n = 4 tenemos 8 composiciones:
4
4
4
4
4
4
4
4
=
=
=
=
=
=
=
=
4
3
2
2
1
1
1
1
+
+
+
+
+
+
+
1
2
1
3
2
1
1
+1
+1
+2
+1+1
Una parte de una composici´n es uno de los sumandos de la composici´n, para n = 4,
o
o
el total de partes en todas sus composiciones es 20. Dado un entero n (1 ≤ n ≤ 109 )
calcule el n´mero de partes m´dulo 109 + 7.
u
o
Entrada
La entrada inicia con un entero T (T ≤ 40). Siguen T l´
ıneas, cada una con un entero
9
n (1 ≤ n ≤ 10 ).
Salida
Una l´
ınea con la respuesta por cada caso.
Ejemplo de Entrada
Ejemplo de salida para la entrada
4
1
2
3
4
1
3
8
20
12
13. 5to-CusContest
UNSAAC
Problema G
source: UTP-judge
Fabi´n es un estudiante de ciencias de la computaci´n a qui´n algunas de sus clases
a
o
e
le causan un poco de somnolencia. Dada la dificultad que esta situaci´n representa para
o
´l, Fabi´n ha estado en b´squeda de una soluci´n para este problema y con el paso del
e
a
u
o
tiempo ha descubierto una actividad que le ayuda a mantenerse despierto en estas clases,
dicha actividad consiste en dibujar alg´n tipo de figura sobre una hoja de papel.
u
En este preciso momento Fabi´n se encuentra en alguna de esas clases que le adormea
cen y ha decidido aplicar esta estrategia que descubri´, inspirado en una conversaci´n
o
o
que tuvo con uno de sus profesores acerca de la curva de Koch, ´l ha creado su propio
e
fractal que se construye como sigue:
La Figura comienza con una linea de longitud L.
Dicha linea se divide en tres secciones de longitud L , se remueve la secci´n central
o
3
L
y se ponen tres segmentos adicionales de longitud igual a 3 de tal forma que esos
segmentos formar´ un cuadrado con el segmento que acabamos de remover.
ıan
Se repite el paso inmediatamente anterior para cada uno de los segmentos de la
nueva figura, el n´mero de veces que se desee.
u
Para hacer la figura anteriormente descrita Fabi´n dispone de un lapicero de ultima
a
´
generaci´n que compr´ en la tienda UTP (Utensilios Tipogr´ficos de Precisi´n), la princio
o
a
o
pal caracter´
ıstica de este lapicero es que le permite a la persona que lo usa, saber a trav´s
e
de un peque˜o tablero electr´nico la longitud en cent´
n
o
ımetros que podr´ rayar todav´
ıa
ıa
con el lapicero.
Dada la longitud L en cent´
ımetros de la recta inicial de la figura (iteraci´n 0) y la
o
Longitud S que Fabi´n puede rayar con el lapicero, tambi´n en cent´
a
e
ımetros, Fabi´n quiere
a
saber de antemano cual es el n´mero N de la iteraci´n de su fractal, tal que la iteraci´n
u
o
o
N + 1 no es posible dibujarla con la tinta que tiene el lapicero.
Es importante aclarar que para que Fabi´n dibuje la iteraci´n n´mero N no tuvo que
a
o u
haber dibujado las N − 1 iteraciones anteriores.
Entrada
La entrada consiste de varios casos de prueba. La primera l´
ınea contiene un unico
´
n´mero T (1 ≤ T ≤ 500) indicando el n´mero de casos de prueba que deben ser proceu
u
sados, las siguientes T l´
ıneas contienen dos n´meros enteros L y S (1 ≤ L ≤ 10, 1 ≤
u
S ≤ 1000, L ≤ S) separados por un espacio, representando respectivamente la longitud
inicial de la linea en la iteraci´n 0 y la longitud que puede rayar el lapicero.
o
13
14. 5to-CusContest
UNSAAC
(a) Iteraci´n 1
o
(b) Iteraci´n 2
o
(c) Iteraci´n 3
o
(d) Iteraci´n 4
o
(e) Iteraci´n 5
o
Figura 2: 5 primeras iteraciones de la figura descrita por Fabi´n.
a
Salida
Para cada caso de prueba escribe una unica linea con el entero N , el n´mero de it´
u
eraci´n m´s grande que Fabi´n podr´ dibujar con los valores dados.
o
a
a
ıa
Ejemplo de Entrada
Ejemplo de salida para la entrada
5
1
1
2
1
1
0
1
4
12
13
1
2
16
765
766
14
15. 5to-CusContest
UNSAAC
Problema H
Un grupo de amigos, estudiantes de Algor´
ıtmica, decidieron no entrar a clases y fueron
a pasar el rato con un juego un poco raro. Al inicio, se escog´ a una persona la cual deb´
ıa
ıa
de escribir en una hoja de papel 2 letras del alfabeto, nadie pod´ ver las letras que esa
ıa
persona hab´ escrito porque luego todos se sentaban formando un c´
ıa
ırculo y cada jugador
ten´ que decir cualquier nombre que se le ocurriera hasta que alguien mencione uno que
ıa
contenga las 2 letras antes elegidas, esa persona ser´ declarada como la perdedora.
ıa
Como todos quieren jugar, te escogieron como el juez y tu tarea ser´ escribir en una
a
hoja 2 letras y decir quien es el perdedor. Como tu consciencia no te deja en paz por no
haber entrado a clases, no estas muy atento, por lo que decides usar tu celular para grabar
todo lo que digan de tal forma que pasado un cierto tiempo paras el juego, escuchas la
grabaci´n y se˜alas al perdedor en caso que haya.
o
n
Entrada
El archivo de entrada contiene varios casos de prueba. La primera l´
ınea de cada caso
contiene dos n´meros N y M seguido por 2 letras diferentes del alfabeto ingl´s separadas
u
e
por un espacio en blanco (1 ≤ N ≤ M, 1 ≤ M ≤ 50). N indica el n´mero de jugadores.
u
A continuaci´n se te proporcionar´ M l´
o
a
ıneas conteniendo los nombres que los jugadores han mencionado. La longitud m´xima de cada nombre no ser´ mayor a 50.
a
a
El archivo de entrada termina cuando N = 0 y M = 0.
Salida
Para cada paso de prueba de la entrada imprimir una l´
ınea:
“Caso #T: R”(sin comillas)
donde T representa el n´mero de caso de prueba, y R indica el indice del jugador que ha
u
perdido. En caso de que hayan varios perdedores, elegir a la persona que haya perdido
m´s antes, y si no hay perdedores imprimir “-1” (sin comillas).
a
15
16. 5to-CusContest
UNSAAC
Ejemplo de Entrada
Ejemplo de salida para la entrada
4 8 E O
Waldinho
Arturinho
Xavier
Joao
Robertinho
Caramelinho
Cecinho
Ronaldinho
3 5 E O
Juanico
Pablita
Fidel
Marianita
Crispin
0 0 A K
Caso #1: 1
Caso #2: -1
16