Concurso de Programación Problema A: Los número de Kaprekar Archivo de entrada: Kap.in Archivo de salida: Kap.out Programa fuente: kap.java Un número de Kaprekar es aquel en que los dígitos de su cuadrado pueden ser separados en dos números que sumados dan el número original. Por ejemplo, el número 703 es un número de Kaprekar, dado que 7032 es 494209 que puede descomponerse en 494 y 209 cuya suma da, de nuevo, 703. Otro ejemplo en el caso del número 2728 tenemos que 2728 2 = 7441984 que es número de Kaprekar porque 744 + 1984 = 2728. Se permite que el primero de los valores de la descomposición sea 0 pero el segundo no. Por ejemplo el número 1002 es 10000, que podría descomponerse en 100 y 00 cuya suma es 100 que no es un número de Kaprekar. Entrada El archivo de entrada contendrá en cada renglón un número, el final del archivo estará marcado con un 0. Salida El archivo de salida debe contener la palabra SI o NO para cada número de la lista. Ejemplo de entrada 703 2728 125 0 Ejemplo de salida SI SI NO Concurso de Programación Problema B: Nueve recuadros Archivo de entrada: nueve.in Archivo de salida: nueve.out Programa fuente: nueve.java Un problema clásico de programación o lógica es el llamado “Cuadro Mágico” el cual consiste en llenar una matriz 3X3 con los números del 1 al 9, en donde lo que se busca en que todas las líneas (horizontales, verticales y diagonales) sumen 15, una variante de éste problema lo llamamos “9 recuadros”, cada recuadro ésta formado por una región cuadriculada de 2X2. Cada cuadricula puede contener 0 o hasta 4 puntos, en la fig 1 se muestran algunos ejemplos de posibles cuadriculas de 2X2. Figura 1 Ejemplos de cuadriculas de 2X2 Si unimos 3 cuadriculas por renglón en 3 renglones se crea una matriz de 6x6 (figura 2), al igual que el cuadro mágico se busca una característica particular y ésta es qué en cada una de sus columnas, renglones y diagonales principales contengan sólo tres puntos, como se puede observar en la fig. 2. Figura 2. Matriz solución con su matriz equivalente en números enteros. Entrada El archivo de entrada contendrá en el primer renglón un numero n (0<n<5), tal que representa el número de casos a resolver, seguido de n líneas, cada una con 9 valores separados por comas, cada número representa una cuadricula de 2X2 (ver figura 2). Salida El archivo de salida deberá imprimir un listado de n mensajes, con las palabras CORRECTA o INCORRECTA, según sea cada caso, es decir, si la secuencia de números cumple la restricción de 3 puntos en cada línea (horizontal, vertical o diagonal de la matriz de 6X6). Ejemplo de entrada 2 8,3,13,3,12,10,13,9,1 11,10,4,3,5,12,4,9,11 Ejemplo de salida CORRECTA INCORRECTA Concurso de Programación Problema C: El Sistema de Numeración Griego Archivo de entrada: griego.in Archivo de salida: griego.out Programa fuente: griego.java El primer sistema de numeración griego se desarrolló hacia el año 600 A.C. Era un sistema de base decimal que usaba los símbolos que se muestran en la figura 1 para representar esas cantidades. Se utilizaban tantas de ellas como fuera necesario según el principio de las numeraciones aditivas. Figura 1. Sistema numérico griego. Para representar la unidad y los números hasta el 4 se usaban trazos verticales. Para el 5, 10 y 100 las letras correspondientes a la inicial de la palabra cinco (pente), diez (deka) y mil (khiloi). Por este motivo se llama a este sistema acrofónico. Los símbolos de 50, 500 y 5000 se obtienen añadiendo el signo de 10, 100 y 1000 al de 5, usando un principio multiplicativo. Haga un programa que permita convertir números decimales enteros menores a 50,001 a su equivalente en sistema griego, obteniendo como salida la menor cantidad de caracteres para representar la solución, utilice sólo los símbolos que se muestran en la figura 2 para el proceso de conversión. En caso de que el número no sea posible convertirlo a este sistema el programa mostrará la siguiente salida: “ERROR”. Figura 2. Tabla de equivalencia de símbolos. Entrada El archivo de entrada contendrá en el primer renglón un número n, tal que n indica los n casos a resolver, a continuación se presenta un listado de n renglones en los que se indicará el número que se desea convertir, Salida El archivo de salida debe contener un listado de n reglones, cada uno de los renglones con la conversión correspondiente o bien la palabra ERROR. Ejemplo de entrada 3 25 3737 0 Ejemplo de salida DDP XXXFHHDDDPII ERROR Concurso de Programación Problema D: Abecegrama Archivo de entrada: abc.in Archivo de salida: abc.out Programa fuente: abc.java Un abecegrama es una frase cuyas palabras están ordenadas alfabéticamente, donde cada palabra comienza por una letra distinta y además se utilizan todas las letras del alfabeto. Por ejemplo, la frase siguiente es un ejemplo de abecegrama: Al bachillerato científico deseaban entrar, fueron grandes hipérbolas invadiéndoles junto kilométricos logaritmos, mejor no ñoñear, observar, preparaos, que resolviéndolos será todo utilidad. Volvieron Walter, Xavi y Zaragoza. Realice un programa que identifique si cada frase contenida en un archivo de texto es o no un abecegrama. Entrada El archivo de entrada contendrá en el primer renglón un número n, tal que n indica los n casos a evaluar. No habrá líneas vacías y cada frase queda delimitada por el carácter *. Las frases pueden contener los siguientes signos de puntuación: punto (.), coma(,), punto y coma (;), signos de interrogación (¿?) y signos de admiración (¡!). Salida El archivo de salida debe contener n líneas, las cuales indicarán con las palabras SI o NO si la frase evaluada es o no un abecegrama. Ejemplo de entrada 4 Al bachillerato científico deseaban entrar, fueron grandes hipérbolas invadiéndoles junto kilométricos logaritmos, mejor no ñoñear, observar, preparaos, que resolviéndolos será todo utilidad. Volvieron Walter, Xavi y Zaragoza.* Ayer, bajo caudalosos chubascos, divisé flacos gorriones hambrientos intentando jamar kéfir. La lluvia manaba. Negros ñúes oscurísimos parecía que ronroneaban satisfechos, trotaban unidos vocalizando "wuau", xenófobos y zalameros* Hola mundo* Antonio Becerra Cabrera, de España, fue gritando hacia Italia, jugando kilométricamente largos meses no ñoñeando o payaseando, quien robó silenciosamente tiempo, usando violentamente whisky, xilófono y zanganeando.* Ejemplo de salida SI NO NO SI Concurso de Programación Problema E: Draw Dominó Archivo de entrada: domino.in Archivo de salida: domino.out Programa fuente: domino.java El dominó es un juego de control y conteo, considerando que solo se tienen 7 números y cada número puede estar 7 veces, por ejemplo el número cero se encuentra en la ficha llamada “blanca” [0,0][0,1][0,2][0,3][0,4][0,5][0,6], por otro lado existen diferentes modalidades de juegos de domino, uno llamado DRAW consiste en que en tu turno coloques de forma continua todas tus fichas (si se puede, si no solo las que tienen continuidad). Por ejemplo si nos tocan las fichas [1,5][2,2][0,2][5,3][2,3][1,4] [4,4] una forma de hacer tu jugada seria: [0,2] [2,2] [2,3] [3,5] [5,1] [1,4] [4,4]. Entrada Un número n que indica cuantos casos a resolver, seguido de n (0<n<4) líneas con 14 números que representan en pares los números de las 7 fichas. Salida Por cada caso mostrar la primer secuencia con la mayor cantidad de fichas que se puede formar, la secuencia comienza con el número de mayor valor, observe el ejemplo de salida. Ejemplo de entrada 3 1 5 2 2 0 2 5 3 2 3 1 4 4 4 0 2 2 2 2 3 3 5 6 4 4 4 1 5 4 5, 2 5, 5 5, 5 3, 1 1, 1 4, 2 3 Ejemplo de salida 4 4 4 1 1 5 5 3 3 2 2 2 2 0 1 5 5 3 3 2 2 2 2 0 5 5 5 3 3 2 2 5 5 4 4 1 1 1 Concurso de Programación Problema F: Las parcelas Archivo de entrada: parcelas.in Archivo de salida: parcelas.out Programa fuente: parcelas.java Una parcela es una porción de tierra destinada al cultivo, la cual puede tener cualquier forma geométrica, sin embargo, las parcelas que tienen la forma de cuadrado o rectángulo son candidatas para instalar un sistema de riego PVC, debido a que dicha forma geométrica permite la optimización de los materiales requeridos para dicha instalación. La empresa “Riego agrícolas del bajío” necesita saber que parcelas son candidatas para la instalación de un sistema de riego, y para ello cuenta con la siguiente información: cuatro puntos continuos en el sentido de las manecillas del reloj en el primer cuadrante de un plano cartesiano el cual describe una figura geométrica. Entrada Un archivo en el que el primer renglón contiene un número n, el cual indica el número de figuras geométricas a leer, a partir del segundo renglón los n conjuntos de 4 pares ordenados que determinan los lugares geométricos que limitan la parcela. Salida Imprimir n renglones en el que cada renglón indica si la i-ésima parcela es viable o No para la instalación de un sistema de Riego. Ejemplo de entrada 3 44411114 10 0 5 5 10 10 15 5 16 8 16 12 18 11 18 8 Ejemplo de salida S S N