Fundamentos de la programacion u2 propuestos
Upcoming SlideShare
Loading in...5
×
 

Like this? Share it with your network

Share

Fundamentos de la programacion u2 propuestos

on

  • 342 views

Esta es la entrega que ofrece una amplia enseñanza ...

Esta es la entrega que ofrece una amplia enseñanza
acerca de la resolución de problemas computacionales
en lenguaje C++.Net.

Este libro muestra ejercicios diseñados didácticamente
para la fácil asimilación del estudiante.

Además se incluye ejercicios de maratón, exámenes y
ejercicios para aplicaciones actuales.

Con este libro Usted podrá culminar su carrera
de ciencias informáticas sin morir en el intento.

Statistics

Views

Total Views
342
Views on SlideShare
342
Embed Views
0

Actions

Likes
0
Downloads
11
Comments
0

0 Embeds 0

No embeds

Accessibility

Categories

Upload Details

Uploaded via as Adobe PDF

Usage Rights

© All Rights Reserved

Report content

Flagged as inappropriate Flag as inappropriate
Flag as inappropriate

Select your reason for flagging this presentation as inappropriate.

Cancel
  • Full Name Full Name Comment goes here.
    Are you sure you want to
    Your message goes here
    Processing…
Post Comment
Edit your comment

Fundamentos de la programacion u2 propuestos Document Transcript

  • 1. Capítulo 11 Ejercicios Propuestos al estudiante
  • 2. 11 Ejercicios Propuestos al estudiante1. Realizar el juego del “laberinto” en una matriz de 20x20. En un fichero guardo una matriz con ceros y unos. Un 1 es una posición válida, mientras que un 0 no me deja pasar. En el fichero también debe aparecer la posición final e inicial en forma de coordenada.2. Lo que se pide es graficar la siguiente estrella en modo texto, en C o C++. o o o o o o o o o o o o o o ¡FELIZ o o NAVIDAD! o o 2000 o o o o o o o o o o o o o o Solo se pide que la letra "I" de la palabra NAVIDAD este en el centro de la pantalla.( por ejm si trabajamos en una pantalla de 80 columnas y 25 líneas el centro será el punto 40,12 )3. Carreras: Eres miembro de un equipo de carreras a campo traviesa, estas carreras son un poco diferentes a las que conoces, ya que no importa quien llegue más rápido, sino quien lo haga de manera más eficiente. La carrera se lleva a cabo en un terreno cuadriculado y en carros que pueden avanzar solo en dirección vertical y horizontal, la cantidad de combustible que puede llevar cada uno de los carros del equipo no le alcanza para llegar de la salida a la meta (una unidad de combustible alcanza exactamente para avanzar un cuadro), en el terreno se encuentran abastecimientos de combustible en los que los carros pueden recargar, cada uno de los abastecimientos puede ser utilizado solo una vez durante la carrera sin importar la cantidad de combustible que se obtenga de él. También un carro de tu equipo puede proporcionarte combustible si se cruzan en algún lugar del terreno. Todos los carros de tu
  • 3. equipo pueden tomar caminos diferentes, y no es necesario que vayan juntos en ningúnmomento.Problema:Escribe un programa que dados los puntos en los que se encuentran los abastecimientos decombustible, sea capaz de elaborar un itinerario que pueda hacer que alguno de los carros detu equipo realice el recorrido desde la salida hasta la meta utilizando el menor número decarros del equipo ó en caso contrario determinar que no existe ninguna solución posible.LímitesTamaño del mapa (100 x 100) FIJO SIEMPRE.Número de carros por equipo (16) FIJO TAMBIEN.Número máximo de abastecedores (500).Cantidad máxima de combustible por carro (15).EntradaPrimer ingreso por teclado la cantidad de combustible que puede llevar cada uno de los carrosdel equipo (todos los carros del equipo son siempre iguales y parten de la salida con el tanquelleno).Segunda entrada son las coordenadas (xs,ys) del punto de salida.Tercera entrada son las coordenadas (xm,ym) de la meta.Cuarta entrada es el número N de abastecedores que hay en el mapa, y en las últimas N líneasestán las coordenadas x, y de cada uno de los abastecedores.SalidaTu programa deberá escribir por pantalla el itinerario que utilizó tu equipo para llegar a la meta,empleando para ello 4 números separados por un espacio utilizando la siguiente notación:C Xa Ya ADonde C es el número del carro,Xa Ya son las coordenadas en las que se abasteció el carro C yA puede tomar los siguientes valores:0 si el carro C cargó combustible en un abastecimiento, el número del carro del que seabasteció y 17 si llegó a la meta.En caso de no existir solución posible deberáescribir: NO SOLUCION.EjemploENTRADA SALIDA8 1 18 19 0 20 14 1 10 19 01 14 1 7 18 0
  • 4. 6 2 19 9 0 19 9 2 13 7 0 18 19 2 7 9 0 13 7 2 7 14 1  10 19 2 1 14 17  7 9 7 18 El carro uno se abastece en el abastecedor que se encuentra en 18, 19. El carro dos se abastece del carro uno en 7, 14. Carro dos llega a la meta.4. Castillo: Neo ha ingresado de nuevo a la matriz y las máquinas han logrado encerrarlo en un complejo con forma de castillo medieval. Sin embargo esto no es suficiente para atraparlo, ya que él es capaz de modificar la matriz, con lo que puede hacer que desaparezcan paredes, logrando de esta forma, encontrar una ruta de escape que lo lleve de vuelta al mundo real para llegar a Zión. Las máquinas sin embargo, pueden darse cuenta de cada cambio que se realice en el sistema, por lo que Neo desea derribar el menor número de paredes para que se dificulte su rastreo. Su tarea es ayudar a salvar la especie humana, escribiendo un programa que determine la menor cantidad de paredes que deben modificarse para salir del castillo. Entrada El castillo consta de m filas (2<=m<=50) cada una con n módulos (2<=n<=50) rectangulares donde cada módulo puede estar rodeado de a lo más 4 paredes. La entrada consta de una línea con los números m y n y a continuación m líneas cada una describiendo los n módulos de esa fila. El número que describe a cada módulo es un entero entre 0 y 15 que es el resultado de la suma de: 1 si tiene pared en el lado oeste, 2 si tiene pared en el lado norte, 4 si tiene pared en el lado este y 8 si tiene pared en el lado sur. Por ejemplo el número 11 representa un módulo con paredes en los lados oeste, norte y sur. Finalmente, una línea indicando la posición inicial en formato fila, columna, en la que se encuentra Neo. Nótese que el castillo puede estar totalmente encerrado, o puede tener módulos con salida directa al exterior. Para salir, Neo puede modificar cualquier pared, incluso las que conectan directamente al exterior.
  • 5. Salida Un número entero que indica el menor número de paredes que debe modificar Neo para salir del castillo y escapar de los agentes. Ejemplo ENTRADA SALIDA 58 2 15 3 2 10 14 11 6 7 7 9 12 7 15 15 13 5 1 14 11 8 10 14 11 4 12 11 10 10 10 10 14 13 11 10 10 10 10 10 10 14 2 5 Este el mapa del castillo ejemplo. La “X” marca el lugar inicial donde se encuentra Neo. Una posible salida derriba dos paredes hacia el norte. Sin embargo esta no es la única forma de salir derribando dos paredes.5. Desórdenes: Una permutación de los números del 1 al N es una secuencia de números a1, a2,... aN en la cual aparece exactamente una vez cada uno de los números del 1 al N. Un desorden de una permutación es una nueva permutación que se obtiene al realizar un conjunto de intercambios de parejas de números en la primera tal que cada número sea intercambiado a lo más una vez.
  • 6. Comenzando con la permutación 1, 2,..., N se desea encontrar la menor cantidad dedesórdenes que se le deben aplicar sucesivamente para obtener una permutación dada.Por ejemplo, para N=5 se desea obtener la permutación 3, 4, 1, 5, 2. Esto se logra con dosdesórdenes, primero intercambiando el 1 por el 3 y el 2 por el 5 para posteriormenteintercambiar el 2 por el 4.Escriba un programa que encuentre: la cantidad D de desórdenes (Subproblema A) y los intercambios (Subproblema B) que se deben efectuar en cada uno de los primeros para obtener una permutación dada.Entrada:La primera entrada contiene el valor de N (con 1  N  1000) y en la segunda línea una lista deN enteros del 1 al N.Salida:Mostrar por pantalla en la primera línea el valor de D y en cada una de las siguientes D líneasla cantidad K de intercambios seguida de K parejas de enteros indicando los númerosintercambiados. Las parejas podrán estar escritas en cualquier orden, pero los desórdenesdeberán escribirse en el orden en que fueron aplicados.Ejemplos ENTRADA SALIDA5 23 4 1 5 2 2 1 3 2 5 1 2 4 ENTRADA SALIDA7 13 2 1 7 6 5 4 3 1 3 4 7 5 6
  • 7. 6. Calendario de un curso: En una Universidad hay un grupo de M personas interesadas en tomar un curso, numeradas de la 1 a la M. La Universidad está dispuesta a contratar los servicios de un profesor para que imparta ese curso. El profesor tiene N fechas disponibles para dar clases, numeradas de la 1 a la N. La Universidad seleccionará algunos de las personas interesadas y algunas de las fechas disponibles para el curso de modo que todas las personas seleccionadas puedan asistir a todas las clases que se impartirán en las fechas seleccionadas. Para ello la Universidad solicita a todos los interesados que le indiquen en que fechas pueden asistir a las clases del curso. Escribe un programa que encuentre una selección de P alumnos y Q fechas que cumplan las condiciones exigidas y que maximicen el producto PQ. Por ejemplo, suponga que M=3 y N=5, la persona 1 puede asistir en las fechas 1, 2, 4 y 5; la persona 2 puede asistir en las fechas 2, 3 y 4; y la persona 3 puede asistir en las fechas 1, 3, 4 y 5. Entonces la Universidad seleccionará a las personas 1 y 3, las cuales pueden asistir en las fechas 1, 4 y 5, el producto PQ es 6. Entrada: La primera entrada son los enteros M y N (1  M, N  30), y en cada una de las siguientes M líneas N enteros 0 ó 1, un 0 indica que la persona no puede asistir a la clase correspondiente y un 1 que si puede asistir. Salida: Mostrar por pantalla en la primera línea los enteros P y Q, en ese orden, en la segunda línea las P personas que asistirán al curso y en la tercera línea las Q fechas en las que se impartirá el curso. Estas dos últimas listas deberán estar en orden creciente. Ejemplos ENTRADA SALIDA 3 5 2 3 1 1 0 1 1 1 3 0 1 1 1 0 1 4 5 1 0 1 1 1
  • 8. ENTRADA SALIDA 4 5 3 3 0 1 0 1 0 2 3 4 1 1 1 1 1 1 3 5 1 0 1 0 1 1 1 1 0 17. Curvas:Todo el mundo prefiere carreteras con pocas curvas. Un ingeniero debe diseñar una carretera queuna dos ciudades y quiere que tenga el menor número de curvas posible, sin importar la longitudde la carretera. Para facilitar el diseño, el ingeniero dibujó un mapa con los accidentes naturalespor donde no puede construirse la carretera, tales como montañas y barrancos muy grandes.Cuadriculó su mapa y quiere que los tramos rectos de la carretera sean horizontales o verticales odiagonales. La carretera sólo puede ir de un cuadro a otro si tienen un lado o una esquina encomún, y no puede pasar por un accidente natural.Hay una curva en la carretera en un cuadro donde termina un tramo recto e inicia otro.Cada cuadro del mapa se identifica por sus coordenadas, primero la columna y después el renglón.Las columnas están numeradas de izquierda a derecha iniciando con el 0. Los renglones estánnumerados de arriba hacia abajo iniciando con el 0.ProblemaEscribe un programa que dado un mapa con los accidentes naturales encuentre el menor númeroposible de curvas que puede tener una carretera que inicie en el cuadro donde se encuentra laciudad A y termine en el cuadro donde se encuentra la ciudad B.EntradaLa primera entrada son los enteros N y M, el número de columnas y renglones del mapa, donde1  N  50, 1  M  50.En cada uno de los siguientes M renglones hay N números que pueden ser 1 ó 0, 1 si hay unaccidente natural en el cuadro correspondiente y 0 si no hay ninguno.En el siguiente renglón (el penúltimo) la columna y el renglón de la ciudad A.En el último renglón la columna y el renglón del punto B.SalidaLa primera salida el menor número de curvas que puede tener una carretera entre las ciudadesA y B.
  • 9. EjemploEn el siguiente mapa de 5 por 7, la ciudad A está en el cuadro (1,1) y la ciudad B en el cuadro(4,6). Cada cuadro negro representa un accidente natural. El menor número de curvas posibleses 3. Una carretera con 3 curvas esta dibujada sobre el mapa, y los cuadros donde hay una curvaestán numerados: ENTRADA SALIDA 5 7 3 0 0 0 1 0 1 0 1 0 0 0 0 1 0 0 1 1 0 0 1 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 1 1 4 6NOTA: en todos los casos de prueba se puede diseñar al menos una carretera.8. Incendio:En una ciudad se han presentado últimamente una gran cantidad de incendios, y las autoridadessospechan que estos han sido provocados por un conocido maleante. Pero mientras se realiza sucaptura, el alcalde ha decidido organizar un sistema de bomberos.La alcaldía ha dividido la ciudad en zonas y ha determinado para cada una de ellas, estadísticassobre el número de incendios presentados y ha determinado una medida del número de incendiosque se podrían prevenir si se asigna una determinada cantidad de bomberos a esa zona. Porejemplo, podemos decir que si a la zona 1 se asignan dos bomberos, se podrían prevenir tresincendios, si se le asignan tres, se podrían prevenir seis, si se asignan cuatro se podrían prevenir
  • 10. seis y para cada cantidad de bomberos asignada se pueden prevenir una cantidad determinada deincendiosEs importante notar que esta relación no es lineal, es decir el hecho de asignar el doble debomberos, no implica que se puedan prevenir el doble de incendios. Además, debido a que no sequiere que ninguna zona se considere discriminada, se debe asignar un mínimo de bomberos paracada una, aunque en zonas sin construir es posible que este mínimo sea cero, es decir, que no seanecesario asignar bomberos.Debido a que esta alcaldía tiene algunos problemas respecto a las cuestiones de planeación, hasolicitado ayuda para determinar cómo distribuir los bomberos de tal forma que se puedan prevenirla mayor cantidad de incendios, mientras logra atrapar al criminal. Su tarea es escribir un programaque ayude a la alcaldía a cumplir su propósito.Entrada:La primera entrada consiste de n (2<=n<=50, el número de zonas) y m (2<=m<=500, el número debomberos disponible).En la siguiente entrada vienen n números, que indican el número mínimo de bomberos necesariosen cada zona. Enseguida aparecen n líneas, cada una de ellas conteniendo m números, cadalínea representando una zona, donde el i-ésimo número de esa línea es la cantidad de incendiosque se pueden prevenir en esa zona si se asignan i bomberos.Salida:La salida son dos líneas. La primera indica cual es la mayor cantidad de incendios que se puedenprevenir en la ciudad. En la segunda vienen n números, en la que el i-ésimo número indica elnúmero de bomberos asignados a la i-ésima zona. En caso de que exista más de unaconfiguración que prevenga la mayor cantidad de incendios, cualquiera de ellas puede darse en lasalida.Ejemplo ENTRADA SALIDA 26 12 12 33 2 3 6 6 9 10 4 5 6 8 9 20
  • 11. 9. TENER ENE PADRES:Unos extraños microbios descubiertos en un lago oculto debajo de la gruesa capa de hielo quecubre el continente antártico han demostrado una extraña forma de reproducción que no se haencontrado en otros seres vivos.En lugar de tener uno o dos padres como los demás seres vivos, pueden llegar a tener hasta Npadres, donde N puede ser un entero no mayor que 1000.La información genética de cada padre viene dada en una cadena de a lo sumo 200 letrasmayúsculas.La información genética que da lugar al neonato esta dada por una cadena formada por laintercalación de un elemento de cada cadena de cada padre mientras estas cadenas tengan letrasdisponibles. No todas las cadenas de los padres son de la misma longitud. La cadena del neonatotendrá la longitud de la suma de las longitudes de las cadenas de todos sus padres, siendo estouna curiosidad biológica adicional de estos microbios.ProblemaDebes escribir un programa para calcular la cadena del microbio neonato a partir de las cadenasde sus padres.Entrada:La primera entrada es el siguiente formado:línea 1: un número entero N (1  N  1.000) que indica la cantidad de padres.líneas 2 a N+1: cada una con una cadena con Ci ( 1  Ci  200) letras mayúsculas indicando lainformación genética de cada padre.Salida:La salida será hacia pantalla la cual estará formada por una sola línea. Esta línea debe contener lacadena del microbio neonato.Ejemplo ENTRADA SALIDA
  • 12. 3 ACXBDZACXBDZAXFEGEFFG ABABAFGFG CDCD XZXZXEEFNota: la información vertida en este enunciado es apócrifa.10. PUEBLO ONDULADOUn pueblo de Ibero América, de cuyo nombre no quiero acordarme, se ha vuelto muy inseguro acausa de la delincuencia y el jefe de policía ha decidido poner P policías a patrullarla.Esta ciudad tiene una particularidad, ha nacido y se ha desarrollado a lo largo de una carretera, demodo tal que todo el patrullaje se reduce a la calle principal que tiene B-1 cuadras de largo, quevisto de otra forma son B bocacalles.A cada policía se le debe asignar un conjunto de bocacalles consecutivas a cubrir durante suronda, desde ellas podrá observar sin necesidad de recorrerlas las pocas casas que hay en cadacalle transversal. Si a un policía le corresponde por ejemplo las bocacalles 1 a 7, el siguientepatrullará desde la bocacalle 8 y así siguiendo.Este problema se complica porque el terreno de la ciudad es fuertemente ondulado y el esfuerzoque realiza el policía no depende tanto de la distancia horizontal, puesto que todos caminanpermanentemente durante su turno, sino de los desniveles que deba vencer. Para simplificar latarea de asignación el jefe de policía determina la máxima y mínima altura que hay en el tramo quele corresponde a un policía y por diferencia determina un número representativo del desnivel.Considera una asignación buena de tramos a los policías aquella que minimiza el máximo desnivelque pudiera tocarle a algún policía.TareaDebes escribir un programa que le ayude a determinar ese número para poder juzgar si la tareaque le impondrá a sus agentes es razonable.Se conoce la altura sobre el nivel del mar de cada bocacalle. Se ha utilizado una unidad de medidalo suficientemente pequeña para que estas alturas sean cantidades enteras. Tu resultado quedaráexpresada en la misma unidad.Entrada:La entrada tiene el siguiente formato:línea 1: los números B (1  B  10.000) y P (1  P  1.000) separados por un blanco.líneas 2 a B+1: las alturas Yi (-400  Yi  8850) sobre el nivel del mar de las B bocacalles
  • 13. Salida:La salida será hacia pantalla que contendrá una única línea con un único número: el peor desnivelque inevitablemente le tocará a algún policía.Ejemplo ENTRADA SALIDA 62 4 100 101 104 101 108 105Podrás comprobar este resultado imaginando las distintas formas de asignar tramos a cada policía.11. RompecabezasSe tienen N x N piezas cuadradas numeradas del mismo tamaño. Cada una viene con su númeroen el interior y con cada lado marcado con algún número. Un ejemplo de pieza 1 es el siguiente:Se trata de acomodar las piezas en un arreglo de N x N de tal manera que si dos lados de dospiezas son adyacentes entonces esos lados deben estar marcados con los mismos números.Por ejemplo:
  • 14. Las piezas no pueden ser giradas ni rotadas al momento de buscar una configuración.EntradaLa primera entrada es el número N, donde 1  N  7. En las siguientes N líneas subsecuentes ladescripción de cada pieza. En cada una de estas líneas (comenzando por la ficha 1) primero va elnúmero que marca el lado vertical izquierdo y luego en sentido horario los que marcan los otroslados para cada una de las piezas.SalidaEn pantalla en N líneas, en cada línea van los números de las piezas en el orden hallado paracumplir las condiciones del problema de cada fila. Se garantiza que toda entrada de prueba tiene almenos una solución.Cualquier solución que cumpla las condiciones del problema es válida.Ejemplo
  • 15. ENTRADA SALIDA 3 862 4133 153 4214 947 3432 4535 3135 4441 3214 1541 434412. Ruleta:El juego de la ruleta ha sido objeto de innumerables intentos de descubrir alguna flaqueza quepermitiera diseñar un método para obtener ganancias sistemáticas. Numerosos autores han escritotratados de cómo saltar la banca. Norman Leigh escribió una obra clásica donde expone como,junto con doce compañeros, saltaron la banca de Montecarlo. La obra, magistralmente escrita,cuenta hechos “verídicos”. Pero con el auxilio de la ciencia de la computación podemos ver queesos hechos tal como los relata Leigh en su libro no pueden haber sucedido.El método que Leigh relata en su libro es el Labouchere inverso. El apostador comienza anotandoen una libreta los números 1, 2, 3 y 4. Siempre apuesta una ficha igual a la suma de los númerosde los extremos de la lista. Si gana agrega al final de la lista un número de igual valor al de suúltima apuesta, que acaba de ganar. Si pierde tacha los dos números de los extremos de la lista. Sien principio pierde las dos apuestas iniciales, la lista se acaba y en total ha perdido $10 y entoncesvuelve a comenzar anotando los números 1, 2, 3 y 4 en su libreta y reiniciando el método. Si laapuesta llega a superar el límite de la mesa el jugador también reinicia el método anotando unanueva lista de 1, 2, 3 y 4 en su libreta y apostando $5.Recordamos que la ruleta europea consta de los números del 0 al 36 y que, jugando a par se ganasi se obtiene un número par distinto de cero, el que juega a impar gana si el número es impar y encaso de salir cero ambos pierden. La apuesta máxima es de $100, recuerde que cuando se superaesta apuesta el método se reinicia. En cada apuesta se gana o se pierde el monto apostado.Con dos jugadores uno jugando a par y otro a impar el método se comporta así en unas bolas deejemplo.
  • 16. 31 22 26 11 4 36 0 4 SalePar Lista 1 2 3 4 2 2 2 3 3 3 5 5 3 3 3 5 5 5 8 8 13 5 5 8 8 7 11Ganancia Acumulada 0 -5 0 +7 -2 +6 +17 +3 +16Impar Lista 1 2 3 4 1 2 3 3 1 2 1 2 2 3 4 3 2 3 2 3 3 3 3 4 4 4 5Ganancia Acumulada 0 +5 -1 -7 -4 -10 -15 -20 -25 Se le pide que escriba un programa que calcule la ganancia o pérdida alcanzada luego de jugarse cierta cantidad de bolas de ruleta. Entrada: La entrada consta de un entero 0 < N <= 30000 en la primera línea indicando la cantidad de tiradas de ruleta y a continuación N líneas cada una con un número entero entre 0 y 36, representando las bolas obtenidas en cada uno de los N giros de la ruleta. Salida: La salida consistirá de dos enteros P y Q separados por un blanco indicando respectivamente la ganancia (o pérdida) de par e impar, proveniente de aplicar el método de Labouchere inverso a las apuestas de par e impar en la serie de bolas contenida en la entrada.
  • 17. Ejemplo ENTRADA SALIDA 8 16 -25 31 22 26 11 4 36 0 413. SIERPE ENROSCADA:En el mundo de la Herpetología Combinatoria pensaremos a las sierpes como ofidios compuestospor una sucesión de cubos del mismo tamaño articulados entre sí.Una sierpe de N x N cubos busca enroscarse formando un cuadrado de N cubos de lado. La sierpepara dormir adopta la posición, en el plano, que le permite tener el cubo 1, (la cabeza), lo más lejosposible del cubo N2, (la cola).Exceptuando la cabeza y la cola todos los demás cubos de la sierpe se articulan con los vecinosen dos caras opuestas (cubos tipo 0) o en dos caras adyacentes (cubos tipo 1). Lo que hace a unasierpe distinta de otra es la ubicación de los cubos de tipo cero y tipo uno en su conformación.Así la sierpe ilustrada tiene luego de la cabeza cuatro cubos seguidos de tipo 1 y luego alterna uncubo de tipo 0 otro de tipo 1 y finalmente otro de tipo 0.Un plegado corresponde a una rotación de 180 grados de la sierpe entre dos cubos vecinos.Aunque la rotación invade la tercera dimensión, al final de la misma la sierpe queda nuevamenteen un plano.ProblemaDebes escribir un programa que indique, a partir de la posición que adopta para dormir, entreque cubos debe plegarse para lograr su cometido de quedar enroscada formando uncuadrado.Luego de cada plegado ningún cubo de la sierpe puede quedar apoyado sobre otro. Seconsiderará como solución la lista pares de cubos vecinos entre los cuales que debe plegarsela sierpe para llegar a formar un cuadrado.
  • 18. Entrada:La sierpe viene descripta por pantalla que en su primera línea tiene el número entero N (3 N5) que indica la raíz cuadrada de la longitud de la sierpe. A continuación el archivo tiene N2-2líneas. Cada una con la descripción (un cero o un uno) del tipo de cada uno de los N2-2 cuboscentrales (los que no son la cabeza ni la cola).Salida:Mostrar por pantalla, a razón de uno por línea, los números de los pares de cubos entre loscuales se ha plegado la sierpe respecto de la posición de reposo separados entre sí por unblanco. Los plegados deben darse en el orden en que fueron sucediendo. En caso de habermás de una solución cualquiera se considerará como correcta.Ejemplo ENTRADA SALIDA 3 2 3 1 5 6 1 4 5 1 1 0 1 0Nota 1: observen que 5-6 4-5 2-3 no es una solución porque después de plegar en 5-6 nopuede hacerse el plegado en 4-5 debido a que se produce la superposición de los cubos 1 y 9.
  • 19. Nota 2: Todas las sierpes que se presenten como casos de prueba tendrán al menos unaforma de enroscarse para formar un cuadrado.Nota 3: Si hay más de una solución, basta con listar una.14. Territorios:En el juego "territorios" dos jugadores A y B se alternan para ir destruyendo el territorio delenemigo. El terreno de juego es una cadena de N territorios alineados, 1  N  120. El territorio 1limita sólo con el territorio 2 que limita a su vez también con el territorio 3 que limita a su veztambién con el territorio 4, hasta llegar al territorio N-1 que limita con los territorios N-2 y N que a suvez sólo limita con el territorio N-1. El primero que juega es A quien es dueño de todos losterritorios impares, mientras que B quien juega en segundo turno es dueño de todos los territoriospares.Cada territorio i esta inicialmente ocupado por una cantidad entera Ti de soldados, 0  Ti  500. Encada turno un jugador puede aniquilar los soldados de un territorio enemigo si la cantidad desoldados suyos en un territorio vecino o la suma de los soldados en sus dos territorios vecinos essuperior a la cantidad de soldados que tiene el jugador enemigo en ese territorio, quedando 0soldados en el territorio vencido.Si un jugador no puede jugar deberá cederle el turno al otro jugador. Cuando ninguno de los dospueda jugar se dará por terminado el juego. El puntaje que obtiene el jugador A es igual a lacantidad de terrenos salvados por A menos los salvados por el jugador B. Si el puntaje de A espositivo gana A, si es negativo gana B y 0 significa un empate.ProblemaEscribe un programa que dados todos los Ti halle el valor del juego para A, considerando queambos jugadores hacen la mejor jugada posible en cada turno, es decir utilizan una estrategiaóptima.EntradaLa primera entrada tiene el entero N y las siguientes N líneas tienen los enteros Ti, 1  i  N.SalidaLa salida se hará escribiendo el valor del juego para A en pantallaEjemplo ENTRADA SALIDA 5 2 33 71 56 44 21
  • 20. 15. Agente de Comunicaciones:En toda área de telecomunicaciones se transmiten datos de un origen a un destino, por ejemploen el caso de AVL (Automatic Vehicle Location – Localización automática de Vehículos) latransmisión es realizada desde un origen móvil (Vehiculo) hacia un destino Centro de Control(Oficina central de una empresa donde se recibe la información) tal como se ve en el la ilustración1. Centro de Control Cola de Mensajes Usuario recién llegados Información Agente Procesada De Mensajes Mensajes Unidad Móvil 200 Unidad Móvil 201Ilustración 1 Esquema General de un sistema AVLTodos los mensajes son del mismo tamaño y contienen datos como tiempo, posición, velocidad yrumbo.Al centro de control llegan mensajes de varias unidades móviles, estos mensajes forman una colade mensajes el cual debe ser procesado por un Agente de comunicaciones que finalmentemuestra al usuario información útil.ProblemaImplementar un Agente de Comunicaciones que tiene como entrada una cola de mensajes ycomo salida un reporte con información procesada.La cola de mensajes es una cadena de texto que contiene uno o más mensajes.>C847B7622083466200000780>C84811082098A30C1E02D78A>C847B87520EE17C72805A79E>C942F2AE20EF08522310E796>C943E6D220EEB2625C1187A0
  • 21. Un mensaje tiene un tamaño único de 26 caracteres conteniendo las siguientes partes indicadas en Anexo 1. >C847B7622083466200000780 El agente de comunicaciones tendrá como entrada solo la cola de mensajes. Debe procesar los mensajes para obtener a partir de su formato hexadecimal sus respectivos valores decimales de acuerdo al Anexo 2. Finalmente imprimir en pantalla un reporte de acuerdo a las reglas indicadas en el Anexo3.------------------------------------Reporte de Mensajes Procesado-------------------------------------Total Unidades : 2Total de Mensajes: 5------------------------------------------------------------------------------------------------------Unidad: 200 Total de Mensajes: 3Orden Longitud Latitud Vel. Rumbo Tiempo Est. Operativo Est. Posición1 75.204434 15.603655 40 090 2006/05/08 08:30 En Movimiento En Zona Normal2 75.567234 10.003212 30 045 2006/05/08 08:10 En Movimiento En Zona Prohib3 75.200034 08.603234 00 000 2006/05/08 08:00 Detenido En Zona Normal------------------------------------------------------------------------------------------------------Unidad: 201 Total de Mensajes: 2Orden Longitud Latitud Vel. Rumbo Tiempo Est. Operativo Est. Posición1 71.200034 15.643234 92 280 2006/05/08 08:32 Velocidad Alta En Zona Normal2 70.200034 15.665234 35 270 2006/05/08 08:22 En Movimiento En Zona Normal
  • 22. Los procesos solicitados son: Proceso de Descodificación de los mensajes Reporte :Listado de los mensajes procesado Reporte :El Listado ordenarlo cronológicamente descendentemente Reporte :Los mensajes agruparlos por unidad y poner los totales de mensaje por grupo y el total general Reporte :Para el calculo de los estados Operativo Reporte :Para el calculo de los estados Posición Anexos Anexo1: Estructura de cada MensajeParte Descripción Tipo Carácter (*) Numero de Posición Posición Datos Adicionales Caracteres Inicial FinalCarácter Inicial > 1 1 1 Siempre tiene valor “>”Unidad HH 2 2 3 Código de la unidad móvilLongitud HHHHHHH 7 4 10 Coordenada xLatitud HHHHHHH 7 11 17 Coordenada yVelocidad HH 2 18 19 Km./hRumbo HHH 3 20 22 Grados (0° a 360°)Tiempo HHHH 4 23 26 Total de Minutos transcurridos de la semana actual.(*) H representa un digito Hexadecimal para su conversión a decimal ver Anexo 4.Anexo2: Ejemplo de una Cola de Mensajes que se ingresara como entrada al programa:>C847B7622083466200000780>C84811082098A30C1E02D78A>C847B87520EE17C72805A79E>C942F2AE20EF08522310E796>C943E6D220EEB2625C1187A0Ordenada resultaría:Carácter Inicial Unidad Longitud Latitud Velocidad Rumbo Tiempo> C8 47B7622 0834662 00 000 780> C8 4811082 098A30C 1E 02D 78A> C8 47B8752 0EE17C7 28 05A 79E
  • 23. > C9 42F2AE2 0EF0852 23 10E 796> C9 43E6D22 0EEB262 5C 118 7A0Procesada de hexadecimal a decimal resultaría:Carácter Inicial Unidad Longitud Latitud Velocidad Rumbo Tiempo> 200 75200034 08603234 0 0 1920> 200 75567234 10003212 30 45 1930> 200 75204434 15603655 40 90 1950> 201 70200034 15665234 35 270 1942> 201 71200034 15643234 92 280 1952Formateando latitud y longitud(*) y calculado la fecha hora(**) correspondiente resultaría:Carácter Inicial Unidad Longitud Latitud Velocidad Rumbo Tiempo (Fecha Hora)> 200 75.200034 08.603234 0 0 2006/05/08 08:00> 200 75.567234 10.003212 30 45 2006/05/08 08:10> 200 75.204434 15.603655 40 90 2006/05/08 08:30> 201 70.200034 15.665234 35 270 2006/05/08 08:22> 201 71.200034 15.643234 92 280 2006/05/08 08:32 (*)Para Latitud y Longitud dividir el valor decimal entre 100000. (**)Para el calculo de la fecha y hora agregar a la fecha hora inicial de la semana (domingo a las o horas) la cantidad de minutos correspondiente al mensaje.Anexo3: Reglas de negocio a cumplir para elaborar el reporte:  El Listado ordenarlo cronológicamente descendentemente  Los mensajes agruparlos por unidad y poner los totales de mensaje por grupo y el total general  Para el calculo de los estados Operativo son tres posibilidades: o Detenido.- si la velocidad es cero o En Movimiento.- si la velocidad es mayor a cero y menor a 90 km/h o Con Velocidad Alta.- si la velocidad es mayor o igual a 90 km/h  Para el calculo de los estados Posición son dos posibilidades(*): o En Zona Normal.- si no esta dentro de la zona Prohibida o En Zona Prohibida.- si esta dentro de la zona Prohibida(*)La Zona Prohibida es un rectángulo definido mediante coordenadas de dos vértices en diagonal: (70.000000,09.000000) (80.000000, 12.000000)
  • 24. Anexo4: Un numero Hexadecimal esta compuesto por los dígitos: 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E y FY su equivalente unitario en decimal es el siguiente:DígitoHexacecimal 0 1 2 3 4 5 6 7 8 9 A B C D E FDígitoDecimal 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15Para transformar un número hexadecimal a su correspondiente decimal debes realizar la sumatoria delequivalente real (es equivalente unitario por potencia de 16, la potencia depende de la posición deldigito) de cada digito Por ejemplo:2BC4 hexadecimal es equivalente a 11204 decimal pues:4*(16^0) + 12*(16^1) + 11*(16^2) + 2*(16^3)=11204