Está en la página 1de 30

Olimpiada Boliviana de Informática

Fases: Distrital, Departamental y Final


2016

Olimpiada Boliviana de Informática


1

Recopilacion de problemas por:


Samuel Réne Loza Ramı́rez
Los problemas corresponden a sus respectivos autores.
2

Índice
Hallando Factores 3

Potencias 4

Representación de Polinomios 5

Hay Fraude 6

Hallar Duplicados 7

Correción de error 8

Divisibilidad 10

Hora Prima 11

Vestibular 12

Concurso de Televisión 14

El Encriptado de Esteban 15

Narcisista 16

Inverso de divisores 17

Competidores OBI 18

Robo 19

1/998001 =? 21

Jim Botón 23

Agua Sucia 25

Alfabeto 26

Ositos Barrigones Intergalácticos 28


3

Hallando Factores
Se dice que todo número puede descomponerse en el producto de números primos llamados factores. Por ejemplo el
número 10 puede descomponerse en 2 por 5. El 20 en 2x2x5. Todos ellos números primos. Ahora te dan un número N y
te piden hallar cuántos factores primos tiene N factorial. Por ejemplo factorial de 10 es 3,628,800 y puede descomponerse
en: 2x2x2x2x2x2x2x2x3x3x3x3x5x5x7 que son 15 factores. Te daran un número para que digas cuántos factores tiene
el factorial de ese número.

Entrada
La entrada consiste en 5 casos de prueba, cada caso de prueba consiste en un número N (2 ≤ N ≤ 1000) del cual hay
que hallar la cantidad de factores primos de N factorial.

Salida
Por cada caso de prueba escriba en una lı́nea el número de factores de N factorial.

Ejemplo de entrada
5
10
4
7
3

Ejemplo de salida
5
15
4
8
2
4

Potencias
Se le pide escribir un programa para hallarlas potencias. Para esto leerá tres números enteros a,b,m. Le piden hallar
(ab ) %m. Para esto hacemos recuerdo que ((a ∗ b) %m = (a %m ∗ b %m) %m)

Entrada
La primera lı́nea indica el número de casos de prueba. Cada siguiente lı́nea corresponde a un caso de prueba que consiste
de tres enteros a,b,m con 1 ≤ a,b,m ≤ 1017 .

Salida
Para cada terna a,b,c, imprima en una lı́nea (ab ) %m.

Ejemplo de entrada
6
3 2 3
2 8 5
2 4 10
1 1 1
10 10 9

Ejemplo de salida
0
1
6
256
0
1
5

Representación de Polinomios
Teniendo en cuenta los coeficientes de un polinomio de grado 0 a 8, usted tiene la tarea de formatear el polinomio en un
formato legible con los caracteres innecesarios quitados. Por ejemplo, dados los coeficientes 0, 0, 0, 1, 21, −331, 0, 1 y −1,
se debe generar una lı́nea de salida que muestra x5 + 21x4 − 331x3 + x − 1.
Las reglas para formatear son las siguientes:

Los términos deben aparecer en orden de grado decreciente.


Los exponentes deben aparecer después de un acento circunflejo,ˆ.
Sólo deben aparecer términos con coeficientes distintos de cero, a menos que todos los términos cuenten con
coeficientes cero, en cuyo caso deberı́a aparecer sólo el término independiente.
Debe colocarse un espacio a ambos lados de las operaciones binarias +y−.
Si el término de mayor grado con coeficiente distinto de cero es positivo, entonces ningún signo debe precederle. Un
término negativo debe ser precedido por un signo menos (sin ningún espacio), como por ejemplo en el polinomio
−7x2 + 30x + 66
Los coeficientes 1 y −1 deben aparecer sólo cuando se trata de los términos independientes. Es decir, en lugar de
−1x3 + 1x2 + 3x1 − 1, la salida deberı́a aparecer como −x3 + x2 + 3x − 1.

Entrada
La primera lı́nea contiene un entero indicando el número de casos de prueba. Cada siguiente lı́nea corresponde a un caso
de prueba conteniendo nueve coeficientes delimitados por uno o más espacios. Cada coeficiente es un número entero con
una magnitud de menor de 1000.

Salida
La salida consiste en una lı́nea por cada lı́nea de coeficientes de entrada. Esta lı́nea debe mostrar un polinomio formateado.

Ejemplo de entrada
2
0 0 0 1 21 -331 0 1 -1
0 0 0 0 0 0 -54 5 0

Ejemplo de salida
x^5 + 21x^4 - 331x^3 + x - 1
-54x^2 + 5x
6

Hay Fraude
Dı́a miércoles, me preparo para dirigirme al Coliseo de la Coronilla, es el dı́a del examen de ingreso a la Facultad de
Ciencias y Tecnologı́a de la universidad Estatal “Prestigiosa”, debido a la saturación de universitarios en esta facultad
(aulas de 120 personas donde pasan clases 250), la “Prestigiosa” solo tomara las mejores 2000 notas en su prueba de
selección múltiple de respuesta única, de mas de 8000 postulantes.
Mas tarde, mientras estoy controlando el examen junto con otros colegas, se escuchan ruidos de petardos, al principio
no les doy mucha importancia porque sabrá usted que la Ciudad siempre esta en conflicto. De rato en rato se vuelve a
escuchar el sonido de los petardos, la tercera vez que suenan les presto mayor atención, empiezo a contarlos!!! después
de unos pocos minutos los petardos vuelven a sonar por unos instantes, yo lo registré todo en un papel. Como buen
matemático me da curiosidad conocer si hay alguna razón para creer que este patrón podrı́a tener relación con las
soluciones de la evaluación. Después del examen le solicite al decano de la Facultad las soluciones completas explicándole
mi inquietud.
Si las respuestas del examen son una cadena de caracteres (mayúsculas) que corresponden a los incisos correctos, y la
cuenta de los sonidos de los petardos son una cadena de números, ¿Podrá usted dar respuesta a la i si alguien cometió
fraude en el examen?

Entrada
La primera lı́nea es un entero m que representa la cantidad de casos de prueba, cada lı́nea de prueba contendrá dos
cadenas: una cadena de caracteres de las soluciones del examen y una cadena de caracteres de la cuenta de petardos.
Puede asumir que los petardos sonaron tantas veces como preguntas tiene el examen.

Salida
En caso de haber fraude, la salida deberá ser la cadena Fraude, y en caso contrario NO HAY FRAUDE

Ejemplo de entrada
4
DDABCD 1234
ABCCDDCC 334433
ABCADACACB 31413132
DCAABB 1123

Ejemplo de salida
FRAUDE
FRAUDE
FRAUDE
NO HAY FRAUDE
7

Hallar Duplicados
Existe una lista de números de teléfono cuyo numero mas grande es 999 − 9999 (siete nueves, tres de de operadora y
cuatro de números de teléfono). Para estos números hay que emitir su factura.
En esta lista de números que están desordenados y existen muchos números duplicados. Te piden que escribas un programa
que liste los números duplicados, para no cobrarles más de una vez.

Entrada
La entrada consiste de múltiples casos de prueba. La primera tiene el numero de casos de prueba. Por cada cada de
prueba viene en una linea un numero (10 ≤ n ≤ 9999999). Luego sigue una linea con n números en el rango de 1 hasta
9999999 inclusive.

Salida
Escriba en una linea todos los numeros duplicados. No debe imprimir espacios al final de la linea o al comienzo.

Ejemplo de entrada
1
8
1 2 3 2 4 2 1 1

Ejemplo de salida
1 2
8

Correción de error
Una matriz booleana tiene la propiedad de paridad cuando cada una de las columnas y las filas tiene una suma par. Esto
significa que contiene un numero par de bits en uno (prendidos). La siguiente matriz es un ejemplo:

1 O 1 0
0 O 0 0
1 1 1 1
0 1 0 1

La suma de las filas es 2, 0, 4, 2 y la suma de las columnas es 2, 2, 2, 2. Su tarea es escribir un programa que lea una matriz
y verifique si tiene la propiedad de paridad. Si no se cumple la propiedad de paridad debe verificar si cambiando un bit
es posible obtener un matriz con la propiedad de paridad y si no es posible debe clasificarla como corrupta.

Entrada
La entrada contendrá varios casos de prueba. la primera linea de cada caso de prueba contiene un numero entero N
(N ¡100) representando el tamaño de la matriz. En las siguientes N lineas existen N enteros por linea. En la entrada
solo hay números 1 y 0. Cuando N es igual a 0 se terminan los datos de entrada.

Salida
Por cada matriz en la entrada imprima una linea. Si la matriz tiene la propiedad imprima BIEN, si es posible obtener
esta propiedad cambiando un bit imprima CAMBIAR(i,j) donde i es la fila y j es la columna de del bit que se debe
cambiar. En otros casos imprima ERROR.
9

Ejemplo de entrada
4
1 0 1 0
0 0 0 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 0 1 0
1 1 1 1
0 1 0 1
4
1 0 1 0
0 1 1 0
0 1 0 1
0

Ejemplo de salida
BIEN
CAMBIAR(2,3)
ERROR
10

Divisibilidad
A usted le dan un número entero, del cual debe sustituir los dos últimos dı́gitos de tal manera que el número resultante
sea divisible por un factor dado, que se tiene como dato.
Los dos últimos números adicionados deben ser el número más pequeño posible. Por ejemplo:

Si num = 275, y factor = 5, entonces la respuesta es “00”, porque 200 es divisible por 5.
Si num = 1021, y factor = 11, entonces la respuesta es “01”, porque 1001 es divisible por 11.
Si num = 70000, y factor = 17, entonces la respuesta es “06”, porque 70,006 es divisible por 17.

Entrada
La entrada consiste de múltiples casos de prueba cada uno en una lı́nea. Cada caso de prueba consiste de dos números
enteros A,B que son el número y el factor respectivamente. 1 ≤ A ≤ 2000000000 y 1 ≤ B ≤ 100

Salida
Por cada caso de prueba escriba en una lı́nea, el número más pequeño que hay que reemplazar para ser divisible.

Ejemplo de entrada
100 5
1000 3
23442 75
428392 17
32442 99

Ejemplo de salida
00
02
00
15
72
11

Hora Prima
Un número primo es un número natural mayor que 1 que tiene únicamente dos divisores distintos: el número mismo
y el número 1. Los números primos son muy importantes no sólo en las matemáticas, sino también en áreas como la
criptografı́a, el arte y la literatura entre las más importantes. Como podemos apreciar, los números primos están presentes
casi en todo inclusive en nuestro tiempo.
En este problema debes calcular cuantas horas primas están presentes en un rango de horas, considera que una hora
prima es aquella cuya suma de su hora y su minuto nos dé como resultado un número primo, por ejemplo, la hora 07 : 34
se considera una hora prima ya que 7 + 34 = 41 y 41 es un numero primo, en cambio las 07 : 44 no es una hora prima ya
que 7 + 44 = 51 y 51 no es un numero primo ya que además de ser divisible entre sı́ mismo y 1, es divisible entre 17 y 3.

Entrada
La entrada consiste primero de un número n de casos, luego siguen n lı́neas, donde cada lı́nea está compuesta por cuatro
números enteros h1, m1, h2, m2 donde (0 ≤ h1,h2 ≤ 24) y (0 ≤ m1,m2 < 60) donde h1 representa la hora y m1
el minuto de la hora inicial del rango a comprobar, h2 representa la hora y m2 el minuto de la hora final del rango a
comprobar.

Salida
Por cada caso de prueba mostrar la cantidad de horas primas que existen en el rango de entrada, considere calcular
también la hora inicial y final del rango.

Ejemplo de entrada
3
4 34 5 25
8 0 8 59
23 50 23 40

Ejemplo de salida
14
15
3
12

Vestibular
Es conocido cientı́ficamente que los seres humanos no podemos caminar en lı́nea recta cuando estamos perdidos, debido a
irregularidades en el sistema vestibular. Esto ha sido demostrado con los experimentos realizados por Emma Bestaven.
La Organización Bestaven de Investigación (OBI) ha decidido contratar programadores para ayudar a caminar en
lı́nea recta a las personas que se pierden. Ellos han construido un dispositivo que detecta cuando una persona esta en
movimiento y durante este periodo de movimiento detecta cinco coordenadas del movimiento de las personas (sı́, sólo
cinco porque el dispositivo es pequeño y no tiene mucha capacidad de memoria). Con estas coordenadas es posible darse
cuenta si la persona se ha movido en lı́nea recta o en su defecto se ha movido hacia la izquierda (girado en sentido
contrario a las agujas del reloj) o hacia la derecha (girado en sentido de las agujas delreloj).
El dispositivo debe ser capaz de decirle a la persona que debe corregir su rumbo para tratar, en lo posible, de que se
mantenga en una lı́nea recta. Por ejemplo: el dispositivo captura las posiciones (2, 1), (3, 3), (4, 3), (3, 4), (3, 5)

Las dos primeras posiciones le dan la ruta en lı́nea recta que deberı́a seguirse, con la tercera posición (4, 3) el sistema
deberı́a sugerir ir hacia la derecha para corregir rumbo, con la cuarta posición leida (3, 4) el sistema debe sugerir ir a la
derecha para corregir rumbo, y sucesivamente.
Los programadores han encontrado una fórmula que es útil para resolver el problema: dados tres puntos a,b,c , por
ejemplo (2, 1), (3, 3), (4, 3) se puede considerar como dos segmentos ab y bc y se puede calcular si bc gira hacia la
derecha o izquierda de la recta que sigue el segmento ab.
giro = (bx − ax)(cy − ay) − (by − ay)(cx − ax)

si giro > 0 quiere decir que bc esta a la izquierda.


si giro < 0 quiere decir que bc esta a la derecha.
si giro = 0 quiere decir que no hay giro.

Hay tres posibles respuestas que da el dispositivo, dos para corregir el rumbo, y una para informar que vamos bien:
IZQUIERDA, DERECHA, DERECHO
13

Entrada
La entrada de 5 casos de prueba. Cada caso de prueba consiste de cinco lı́neas. Cada lı́nea contiene dos enteros que
representan las coordenadas x y y de una posición. La lı́nea 1 corresponde a la primera coordenada y la lı́nea n corresponde
a la n-esima coordenada.

Salida
Para las últimas tres coordenadas se debe responder la corrección de giro a realizar, para cada caso de prueba escriba la
respuesta en una sola lı́nea.

Ejemplo de entrada
2 1
3 3
4 3
3 4
3 5

Ejemplo de salida
IZQUIERDA DERECHA DERECHA
14

Concurso de Televisión
Con la finalidad de atraer a mayor audiencia el canal de TV de su localidad ha decido crear un concurso en el que va
ha regalar dinero a los participantes. El concurso consiste de una caja rectangular de bolas, donde cada bola tiene un
numero entero que esta en el rango (−100 ≤ n ≤ 100). El concursante debe escoger un rango de bolas de la base y
obtiene un premio en dinero equivalente a la suma de todas las bolas del rango que escogió y de todas las que están por
encima de estas bolas.

Si escoge de las 6 columnas las que corresponden al rango rango de 1 a 5 se lleva el dinero que corresponde a las columnas
1,2,3,4 haciendo un total de 16 pesos. Para no perder dinero en el concurso te piden hallar el máximo de dinero que un
concursante puede obtener.

Entrada
La entrada consiste de varios casos de prueba. La primera linea de cada caso de prueba tiene dos números que son las
dimensiones de la matriz n,m, (1 ≤ n, m ≤ 100000). Luego siguen n filas cada una con m números separados por espacio.

Salida
Escriba en la salida el máximo número de pesos que un concursante puede ganar.

Ejemplo de entrada
3 6
5 -1 -10 4 -1 3
1 -1 17 -2 3 1
7 -1 -8 4 -1 -8

Ejemplo de salida
16
15

El Encriptado de Esteban
Esteban es un joven que disfruta mucho leyendo sobre criptografı́a y codificación de mensajes y texto. Durante sus clases,
se pasa mensajes secretos con sus compañeros a escondidas de su profesor, y si es que él los encuentra pasándose sus
papelitos, no puede entender el mensaje gracias a su codificación, sin embargo, Esteban vio esta mañana que su profesor
llevaba en manos un libro sobre criptografı́a en el cual justo se encuentra el cifrado que él utiliza con sus amigos; alarmado
decide crear su propio método de encriptación de mensajes que no pueda ser encontrado en libros.
Su nuevo método de encriptación consiste en agarrar una oración, y sustituir las vocales por espacios vacı́os, pero al
sustituir esa vocal, se la guarda en una lista ordenada, y cundo en la oración original haya un espacio, se lo sustituye por
la primera vocal en la lista, que luego se la elimina y la siguiente en la lista es la anterior a esa, al terminar la oración, se
agrega un punto. Finalmente, si quedan vocales en la lista luego de terminar de recorrer la oración, se ponen los ASCII
de esas vocales separados por un espacio cada uno. Si es que en la lista hay menos vocales que espacios, se agrega un
“ ” (guión bajo) sin las comillas en el espacio que irı́a la vocal, al igual que en el caso de que la oración inicie con una
vocal, se pone un “ ” para no perder la noción de la presencia de ese espacio.

Entrada
La entrada consiste en 100 oraciones diferentes.

Salida
Imprimir la oración encriptada en una sola lı́nea.

Ejemplo de entrada
in the name of Galia

Ejemplo de salida
_nith en m a feG l . 111 97 105 97
16

Narcisista
Como ya has podido darte cuenta en el mundo de los números hay variedad de sociedades, una muy marcada es la
comunidad de narcisistas. Estos ciudadanos son especiales y tienen niveles de alcurnia que está denotado por e, por
ejemplo el 153 es un narcisita de nivel 3, ya que la suma de sus cifras elevadas al cubo suman el mismo número:
153 = 13 + 53 + 33. En general si un numero num tiene la forma: dn . . . d3 d2 d1 d0 , se dice que es narcisista de nivel e,
si se cumple que num = den + . . . + de3 + de2 + de1 + de0 . El problema es conocer el nivel de alcurnia de un número, lo que
sabemos es que no todos los números tienen un nivel de alcurnia, estos números sin alcurnia son llamados normales.
Afortunadamente en Numerolandia no hay muchos narcicistas!.

Entrada
Cada caso de prueba consiste de n + 1 lı́neas. La primera lı́nea indica la cantidad de números a evaluar, las n lı́neas
siguientes contienen un entero n donde 0 ≤ n ≤ 10000

Salida
Por cada número evaluado se escribe una lı́nea que indica la alcurnia del número. Las salidas pueden ser de dos tipos:
Es narcicista con nivel de alcurnia o en su defecto que el número es normal (ver ejemplo)

Ejemplo de entrada
5
153
110
8521
990319
1634

Ejemplo de salida
153 es narcisista de alcurnia 3
110 es normal
8521 es normal
990319 es normal
1634 es narcisista de alcurnia 4
17

Inverso de divisores
Se dice que un número M divide a un número N si el residuo de N/M es igual a 0, un número tiene una cierta cantidad
de divisores, por ejemplo 24 tiene 8 divisores:

24 / 1 = 24 (residuo 0)
24 / 2 = 12 (residuo 0)
24 / 3 = 8 (residuo 0)
24 / 4 = 6 (residuo 0)
24 / 6 = 4 (residuo 0)
24 / 8 = 3 (residuo 0)
24 / 12 = 2 (residuo 0)
24 / 24 = 1 (residuo 0)

En este problema se te dará el número de divisores que tiene cierto número y tu debes hallar el mı́nimo número que
tengan esos divisores.

Entrada
Se te darán varios números que representan el número de divisores que debe tener algún número, este número de divisores
estará entre 1 y 109 . La entrada termina cuando no hay mas datos.

Salida
Para cada número que recibas en la entrada imprimir en una lı́nea, el mı́nimo número posible que tenga esa cantidad de
divisores de no existir o que este número sea mayor que 109 imprimir -1.

Ejemplo de entrada
8
64

Ejemplo de salida
24
7560

Tarea 1: 30 puntos
La entrada son números entre 1 y 10.

Tarea 2: 70 puntos
La entrada son números entre 1 y 109 .
Nota: El primer caso del ejemplo corresponde a la tarea 1, el segundo caso del ejemplo co-rresponde a la tarea 2.
18

Competidores OBI
A la Fase Nacional de la Olimpiada Cientı́fica Estudiantil, han llegado estudiantes de muchos departamentos de Bolivia.
Todos los estudiantes tienen una credencial y en ella un código único, y por alguna extraña razón el código de los
competidores del área de informática tienen una particularidad: Tienen al menos 3 números primos de un dı́gito y la
suma de estos números primos es par.
Mishell, una competidora del área de matemáticas se ha dado cuenta de ello y por eso va contando competidores en el
área de informática en cada grupo que ella conoce, ella anota y hace sus cálculos de manera manual ya que no sabe
programar. Por ello te pide ayuda, ya que vio tu credencial.
Realiza un programa donde ingresas n números que representan los códigos de las credenciales y cuente los competidores
en el área de informática.

Entrada
La primera lı́nea tendrá un número n < 4000, que es la cantidad de casos de prueba. Seguido de n lı́neas. En cada lı́nea
se tiene un número x > 1 y x < 100000000. Cada x corresponde al código de una credencial.

Salida
Imprimir sólo un número, el cual indica la cantidad de competidores en el área de informática.

Ejemplo de entrada
3
12341689
567912
23456

Ejemplo de salida
2
19

Robo
Son tiempos difı́ciles en el paı́s de las hadas, ahora existe escasez del polvo mágico que usan para volar y otras capacidades
que las hadas tienen. La prqueña TinTan ha comenzado a sospechar que hay una ladrona entre ellas!
Desde que comenzó la escasez el Consejo de Hadas decidió entregar diariamente el polvo mágico en forma de cubo,
lamentablemente los duendes que procesan el polvo no se han puesto de acuerdo en las dimensiones y entregan a cada
hada un cubo de dimensiones distintas, eso si, por justicia entregan la misma cantidad a todas las hadas.
Desde hace varios dı́as, algunas compañeras de TinTan se han quejado que no les alcanzó el polvo mágico para sus
actividades, TinTan sabe que varias de ellas son muy responsables y no malgastarı́an el preciado polvo; solo queda la
posibilidad de una ladrona! será posible un hada ladrona?
Cada dı́a solamente una hadita se queja de falta de polvo, por esta razón TinTan sabe que solamente existe una ladrona.
TinTan ha acudido al programador Tu, si . . . Tu como lo oyes, Tu debes ayudarle.
Para la investigación Tu tiene una lista entregada por TinTan que provee el nombre de cada hadita que recibe polvo
diario y las dimensiones del cubito (largo, ancho, y alto).

Entrada
La entrada consiste un valor D (1 < D < 100)en la primera lı́nea que representa el número de dı́as para los que se
investiga, luego para cada dı́a se tiene un valor N para el número de haditas que recibieron polvo mágico en ese dı́a con
1 < N < 1000, en las siguientes n lı́neas se tiene el nombre de la hadita (máximo 25 caracteres, como verás las hadas
tienen nombres exóticos difı́cles de pronunciar para los mortales simples) y las dimensiones del cubo: largo, ancho y alto;
estas dimensiones son un valor en el rango [1, 250]
Los datos de la entrada representan el volumen actual de los cubos.

Salida
Imprimir, por cada dı́a (caso de prueba), una lı́nea con el nombre de la ladrona, el nombre de la vı́ctima y la cantidad
de polvo robado siguiendo el patrón siguiente: X ha robado a Y un volumen de M, siendo X, Y nombres de hadas
y M la cantidad robada.
En caso de no haber ladrona en un dı́a se debe mostrar como resultado una lı́nea con el mensaje No hubo robo hoy
20

Ejemplo de entrada
3
4
anhana 2 2 2
morgana 1 4 2
calipso 2 3 1
helga 2 5 1
4
anhana 2 2 2
morgana 2 2 2
calipso 2 2 2
helga 2 2 2
5
anhana 2 2 1
morgana 2 2 2
calipso 2 4 2
helga 2 2 2
carlin 2 1 2

Ejemplo de salida
helga ha robado a calipso un volumen de 2
No hubo robo hoy
calipso ha robado a anhana un volumen de 4
calipso ha robado a carlin un volumen de 4

Tarea 1 (30 %)
Se debe pensar soluciones cuando roba a una sola hada. Vea el ejemplo de los dos primeros casos.

Tarea 2 (70 %)
Se debe pensar soluciones cuando roba a varias hadas. Vea el tercer ejemplo.
21

1/998001 =?

IMPORTANTE: Responde en el cuadro habilitado como corresponda a cada uno de los casos planteados en la sección
Problema. Escribe una lı́nea por cada respuesta, una respuesta por caso; no todas las respuestas en la misma lı́nea, no
todas las respuestas separadas con espacios. UNA respuesta por cada linea en el cuadro habilitado.

Una relación importante de las matemáticas es 1/998001, que genera un resultado de precisión infinita, lo curioso es que
es una serie del 0 al 999, escrito en tres cifras, una vez que termina, inicia de nuevo la serie:

1/998001 = 0.000001002003004005006007008009010011012013014015016017018019020021
022023024025026027028029030031032033034035036037038039040041042043044045046047048
049050051052053054055056057058059060061062063064065066067068069070071072073074075
076077078079080081082083084085086087088089090091092093094095096097098099100101102
103104105106107108109110111112113114115116117118119120121122123124125126127128129
130131132133134135136137138139140141142143144145146147148149150151152153154155156
157158159160161162163164165166167168169170171172173174175176177178179180181182183
184185186187188189190191192193194195196197198199200201202203204205206207208209210
211212213214215216217218219220221222223224225.........

Cálculus les ha pedido a sus estudiantes que resuelvan el problema sin usar una calculadora por lo que deben hacer
el trabajo manualmente y entregarle sus respuestas. Cálculus ya no se preocupa cómo encontrar el resultado, sino más
bien en verificar que el resultado sea correcto. Es ası́ que su tarea es cerciorarse de que los términos de la relación se
encuentren en las propuestas de resultado(truncadas) que le generan sus estudiantes, en caso de que no sea ası́ su nota
dependerá de la cantidad de términos faltantes y la precisión de la propuesta. Por lo que necesita saber qué términos
no se encuentran en la respuesta si es incorrecta, caso contrario si la respuesta es correcta debe emitir un informe de
“CORRECTO”.
Por ejemplo, si uno de sus estudiantes le entrega la siguiente respuesta:
0.000001002003004005006007008009010011012013014015016017018020021022023, debera indicar los términos que fal-
tan, en este caso particular falta el 019.
Tu tarea es identificar si una propuesta de solución a la división propuesta es correcta, en este caso debes emitir “CO-
RRECTO”, en caso de que no sea hay que indicar los términos que faltan.

Entrada
La entrada consiste de un número entero n que indica en número de casos de prueba, le siguen n lı́neas y cada una de
ellas es una propuesta de solución s que representa a un número real de la forma 0.ddddddd..., la cantidad de cifras de s
incluido el . no excede a 20000 caracteres y no es menor que 3.

Salida
La salida por cada caso de prueba se muestra en una lı́nea, la misma que contiene la cadena “CORRECTO” o una lista
de términos faltantes separados por un espacio en blanco.
22

Ejemplo de entrada
5
0.000001002003004005006007008009010011012013014015016017018020021022023
0.000001003004005007
0.000001002003004005006007008009010
0.00001
0.0000010

Ejemplo de salida
019
002 006
CORRECTO
001 002 003 004 005 006 007 008 009
CORRECTO

Tarea 1: 50 puntos
Los casos de entrada tendrán cantidad de dı́gitos después del punto decimal equivalente a un múltiplo de 3. Por ejemplo:

0.000010
Tarea 1: 50 puntos
Los casos de entrada tendrán cualquier cantidad de dı́gitos. Por ejemplo:
0.00000101
23

Jim Botón
No hace mucho Jim y Lucas se fueron para China, si para China, con la esperanza de ser maquinistas (a ellos les gusta
conducir trenes) .
China es un paı́s muy grande y los niños dicen que son muy despiertos a temprana edad, cosa que es verdad. Jim y Lucas
han encontrado al pequeño Pi, que les ha contado que la princesa ha sido secuestrada por Dragones, si dragones de China.
Con esta información Jim y Lucas han buscado al Emperador de China para ofrecer rescatar a la princesa a cambio de
un permiso para ser maquinistas en la Gran China. Lamentablemente el Gran Bonzo Pin Pao no está contento, nadie
puede ser capaz de rescatar a la princesa salvo el Gran Bonzo.
Pin Pao se ha hecho cargo de verificar que Jim y Lucas son capaces de rescatar a la princesa, y para esto ha convencido
al Emperador de entregar a los extranjeros palillos de distintos tamaños, los tamaños posibles son de 0 Li, 1 Li, 2 Li, . . . ,
9 Li; se les dará hasta siete palillos para los que deben calcular cuantas configuraciones de palillos conforman un número
primo. ¡Si se equivocan se les cortará la cabeza!.
Pin Pao es un Bonzo muy tramposo, como verás hay ocasiones que da menos palillos de los que debiera a Jim y Lucas,
de manera que fallen las configuraciones que el Emperador espera; en estas ocasiones les entrega pequeñas bolitas que
representan a los palillos de longitud 0 Li.
¿Puedes ayudar a Jim y Lucas a resolver este problema rápidamente?

Entrada
La entrada consiste de un valor entero positivo n que representa el número de casos que deben resolverse. En las lı́neas
siguientes se presentan los valores en Li de los siete palillos como una secuencia de cifras de una longitud máxima de 7
y mı́nima de 1.

Salida
Imprimir, por cada caso de prueba, una lı́nea con el número de configuraciones que representan un número primo.
Por ejemplo, para el caso de recibir dos palillos uno de 3 Li y otro de 1 Li (31), se pueden configurar de las siguientes
maneras: 1, 3, 13, 31; por tanto hay 3 posibles números primos de estas configuraciones, y la respuesta es 3.
Nota que el 0 no es significativo cuando está más a la izquierda!.
24

Ejemplo de entrada
4
5
11
31
031
9999

Ejemplo de salida
1
1
3
4
0

Tarea 1: 40 puntos
Para esta tarea se considera soluciones con cinco palillos con valores no repetidos para los palillos. Los valores posibles
para los palillos van de 1 LI a 9 Li ([1, 9] , no aparece el valor 0)

Tarea 2: 60 puntos
Se considera soluciones para palillos de 0 Li a 9 Li ([0, 9] ). Se considera soluciones con hasta 7 palillos.
25

Agua Sucia
Es el 2020 después de carnavales y hay escasez agua. Una nueva empresa de agua sucia se ha fundado y te han contratado.
Esta empresa compra y vende turriles que tienen una cierta cantidad de litros de agua sucia. Como el mercado de venta
y compra de agua sucia es muy competitivo debido a la agresiva competencia que existe, quieren saber en todo momento
si son o no la mejor empresa de venta y compra de agua sucia. La empresa empieza con 0 turriles y se pondrá a comprar
y vender turriles a lo largo del tiempo.
El valor de la empresa en la bolsa de valores es igual a la multiplicación de las cantidades en litros de todos sus turriles,
es decir, si tienen los turriles con cantidades de agua sucia en litros iguales a {1, 5, 2,5} entonces el valor en la bolsa de
la empresa es igual a 1 ∗ 5 ∗ 2,5 = 12,5.
La empresa sabe que es la mejor en su tipo, si es que no puede existir otra empresa que tenga la misma cantidad total de
agua (la suma en litros de todos los turriles) y tenga un mejor valor en la bolsa. Por ejemplo la empresa con los barriles
{2, 2} es mejor en la bolsa que la empresa con los turriles {1, 3}.
Tu trabajo es decidir despues de cada transacción si la empresa es la mejor o no.

Entrada
La primera lı́nea de entrada contiene un entero T que representa el número de casos de prueba. Para cada caso de prueba
se tiene un valor N en una sola lı́nea que representa la cantidad de transacciones que la empresa realiza. La siguiente
lı́nea tiene N números x1 , x2 , . . . xn , separados por un espacio, que representan una compra o venta en orden cronológico.
Si xi es positivo significa que compraron un turril de xi litros de agua sucia, al contrario si xi es negativo, representa
que se vendió un turril de xi litros de agua. Se garantiza que una empresa no venderá un turril de una cantidad de litros
de agua que no tenga y que la empresa jamás tendrá cero turriles excepto al inicio.

Salida
Imprimir en una lı́nea una cadena de N caracteres que tenga en la posición i-ésima una letra “S” si es que la empresa es
la mejor despues de la i-ésima transacción o una “N” si no es el caso.

Ejemplo de entrada
1
4
2 3 2 -3

Ejemplo de salida
SNNS

Tarea 1: 30 puntos
Se cumple: 1 ≤ N ≤ 100

Tarea 2: 70 puntos
Se cumple 1 ≤ N ≤ 100000
26

Alfabeto
Recientemente acaban de descubrir textos escritos en una lengua antigua no conocida hasta el momento. La misma consta
de muchos caracteres que son difı́cles de expresar de forma impresa, por esta razón se las va expresar como números,
pero su abecedario está en otro orden.
Se conocen listas de letras que se cree que están ordenadas alfabéticamente según el orden de dicho abecedario, cada
lista consta de m letras distintas. Los expertos en el tema nos piden decidir si es posible que exista un abecedario que
cumple las condiciones de ordenamiento para todas las listas.
Si tenemos las siguientes listas: [1, 2, 3], [4, 5, 6], [2, 4],[6, 2], no cumple las condiciones para ser abecedario; la razón es
que tomando las tres primeras listas, entendemos que 2 está antes que 6 (siendo el orden 1, 2, 3, 4, 5, 6); si se introduce la
última lista [6, 2], no se podrá definir si 2 va antes o después que 6 .

Entrada
La entrada consiste de un número entero c que indica el número de casos.
A continuación para cada caso se tiene un número entero n que indica la cantidad de listas a comprobar, luego le siguen
n lı́neas y cada una de ellas representa una lista como una secuencia de caracteres, el primer valor m en cada lı́nea indica
el número de caracteres que tiene la lista, luego le siguen los caracteres separados por espacios.

Salida
La salida por cada caso de prueba se muestra en una lı́nea, la misma que contiene la cadena “No Existe Abecedario” si
hay un abecedario tal que todas las listas tengan sus letras ordenadas alfabéticamente, y “Existe Abecedario” si hay un
abecedario.

Ejemplo de entrada
2
5
3 1 2 3
3 4 5 6
2 2 4
2 1 5
2 6 2
3
3 1 2 3
3 7 3 11
2 1 7

Ejemplo de salida
No Existe Abecedario
Existe Abecedario
27

Tarea 1: 30 puntos
El número de listas: 1 ≤ n ≤ 10 y m la cantidad de elementos de una lista 2 ≤ m ≤ 10.

Tarea 2: 70 puntos
El número de listas: 1 ≤ n ≤ 105 y m la cantidad de elementos de una lista 2 ≤ m ≤ 105 .
28

Ositos Barrigones Intergalácticos


Los Ositos Barrigones Intergalácticos (OBI) crearon una red comercial construyendo una ruta, bi-direccional, entre todos
los pares de planetas de la galaxia. Todos eran felices realizando sus negocios hasta que los Insectos Corrupto-Planetario-
Comerciantes (ICPC) llegaron a corromper las rutas comerciales. Se dice que una ruta es corrupta si los ICPC se
apropiaron de esta.
Los ICPC sólo pueden recorrer rutas corruptas y los OBI por rutas no corruptas.
Se dice que un subconjunto de planetas es seguro comercialmente si existe una ruta comercial no corrupta entre cada par
de estos planetas. Un subconjunto de un solo planeta es siempre seguro comercialmente y se lo debe tomar en cuenta.
Tu trabajo es responder a las preguntas de los ositos en la configuración actual de la red comercial.
Se realizan dos tipos de operaciones en la red comercial:

1. Pregunta. ¿Cuántos distintos subconjuntos de planetas no vacı́os son seguros comercialmente en este momento?
2. Actualización. Los ICPC Corrompen una ruta de la red comercial que conecta el planeta U con el planeta V .

Se garantiza que los ICPC corrompen rutas sólo si esta les permite un nuevo camino entre dos planetas, entre los cuales
antes no podı́an moverse. En otras palabras, jamás corremperán la ruta de U hacia V si ya existı́a un camino de ruta
corrupta entre estos dos planetas.

Entrada
La primer lı́nea de entrada contiene un valor entero T , que representa la cantidad de casos de prueba, con 1 ≤ T ≤ 10.
A continuación para cada caso de prueba se tiene: una lı́nea con dos valores enteros N y Q que representan el número
de planetas y el número de operaciones respectivamente. Le siguen Q operaciones, una por lı́nea. Una operación de
pregunta se representa con la letra b en la lı́nea, una operación de actualización se representa con una letra a seguida de
dos números U y V separados por espacios. U y V son la numeración de los planetas y juntos representan el camino de
U hacia V que a partir de este momento estará corrompido. Con 1 ≤ U ≤ N y 1 ≤ V ≤ N .

Salida
Por cada lı́nea de entrada que es una operación de actualización se debe imprimir la cantidad de distintos subconjuntos
de planetas no vacı́os que son seguros comercialmente en ese momento.
29

Ejemplo de entrada
2
3 4
b
a 1 2
a 1 3
b
10 10
b
a 4 7
a 5 8
a 5 9
a 5 10
b
a 2 4
a 2 5
a 1 3
b

Ejemplo de salida
7
4
1023
431
257

Tarea 1: 10 puntos
El número de planetas y operaciones cumplen las siguientes restricciones: 1 ≤ N ≤ 10 y 1 ≤ Q ≤ 15.

Tarea 2: 20 puntos
El número de planetas y operaciones cumplen las siguientes restricciones: 1 ≤ N ≤ 100 y 1 ≤ Q ≤ 15.

Tarea 3: 70 puntos
El número de planetas y operaciones cumplen las siguientes restricciones: 1 ≤ N ≤ 1000 y 1 ≤ Q ≤ 2000.

También podría gustarte