AYUDA EN C++
Publicado por CARLOS (5 intervenciones) el 16/11/2008 19:58:46
Ud. deberá implementar las siguientes estructuras de datos vistas en clase:
Arreglo dinámico, String, Listas enlazadas, Cola, Pila y Dipolo.
Nombre del archivo fuente:
cyberpunk.cpp
Estructura recomendada:
String
La Red Bancaria del Llano (RBL) utiliza un protocolo de datos llamado “Chigüi858", el cual
establece una estructura de datos especifica para la codificación y decodificación de datos
en las terminales bancarias. Un mensaje en el formato “Chigüi858" se encuentra
estructurado de la siguiente manera:
1. Identificador de mensaje: 4 caracteres que indican el tipo de mensaje.
2. Bitmap primario: El primer carácter indica la presencia o no del bitmap secundario.
Los 63 caracteres restantes indican la presencia o no de los subsecuentes 63
campos de datos. Estos caracteres serán igual a '1' si el campo está incluido en el
paquete, de lo contrario será '0'.
3. Bitmap secundario: Este campo sólo estará presente si y sólo si el primer bit del
bitmap primario es '1'. El bitmap secundario también estará compuesto por 64
caracteres. Estos caracteres serán igual a '1' si el campo está incluido en el
paquete, de lo contrario serán '0'.
4. Datos: Los datos estarán después de los bitmaps. La cantidad de campos de datos
viene determinada por la cantidad de bits encendidos en los bitmaps. Los datos
vienen ordenados y codificados de la siguiente forma:
• Dos caracteres indicando el largo
Ni
del campo.
•
Ni
caracteres con el contenido del campo.
El pequeño Chigüi apodado
cyberchigüi
desea hurtar algunos datos bancarios, así que
se ha conectado furtivamente a la RBL. Sin embargo, no tiene idea de cómo interpretar
los datos. Es por ello que te pide ayuda para que decodifiques las cadenas interceptadas.
Entrada
Cada caso de entrada contendrá una cadena cuya longitud no excederá 20000 caracteres
y sólo estará compuesta por caracteres alfanuméricos.
Salida
Se debe mostrar: Identificador del mensaje (MTI), Bitmap primario y Bitmap secundario.
En caso de que algún campo no exista, no imprima nada. Imprima una línea en blanco
después de cada caso.
Entrada Ejemplo 1:
020001101100000000000000000000000000000000000000000000000000000000
000820-000Bfs13BancoDelLlano16010420301040522311IslasCaiman
Salida Ejemplo 1:
MTI:
0200
Primary Bitmap:
0110110000000000000000000000000000000000000000000000000000000000
Field 1:
20000Bfs
Field 2:
BancoDelLlano
Field 4:
0104203010405223
Field 5:
IslasCaiman
Entrada Ejemplo 2:
020011101000000000000000000000000000000000000000000000000000000000001000
-
0000000000000000000000000000000000000000000000000000000000000820000Bfs13-
BancoDelLlano16010420301040522311IslasCaiman
Salida Ejemplo 2:
MTI:
0200
Primary Bitmap:
1110100000000000000000000000000000000000000000000000000000000000
Secondary Bitmap:
1000000000000000000000000000000000000000000000000000000000000000
Field 1:
20000Bfs
Field 2:
BancoDelLlano
Field 4:
0104203010405223
Field 64:
IslasCaiman
Nota:
El “-” no forma parte de la entrada, está colocado para indicar que la línea no
termina allí, sino que continúa en la siguiente. En tal caso, la entrada solo posee tres
líneas: la cantidad de casos, el primer y segundo caso de prueba.
Laberinto Carcelario
Nombre del archivo fuente:
laberinto.cpp
Estructura recomendada:
Cola
Scofield y su banda se encuentran en la cárcel y un día deciden escapar. La banda decide
separarse en dos grupos, uno dirigido por Scofield y otro por Fernando Sucre. Scofield al
ser muy inteligente ha logrado diseñar una estrategia infalible para escapar, mientras que
Sucre se ha dirigido a las alcantarillas de la prisión, la cual, en pocas palabras, se puede
describir como “un laberinto".
Sucre tiene el mapa del laberinto y debe intentar escapar lo antes posible, ya que los
guardias de la prisión están tras la pista de la banda. Sucre y su equipo sólo pueden
moverse de una casilla a otra en el mapa si y sólo si éstas comparten un lado.
Se desea que usted implemente un algoritmo que, dado el mapa de las alcantarillas, el punto de entrada y el punto de salida, ayude a Sucre y a sus compañeros a escapar de la prisión.
Entrada
La primera línea tendrá dos enteros
R y C (2= R, C =500), los cuales indican el tamaño del mapa de las alcantarillas. La segunda línea contendrá 4 enteros con las coordenadas r1, c1, r2 y c2 (1 = r1, r2 = R, 1 = c1 , c2 = C , ( r1 , c1 ) ( r2 , c2 )), los cuales indican la posición ( r1 , c1 ) de la entrada y la posición ( r2 , c2 ) de la salida, respectivamente. Las siguientes R
líneas contendrán C caracteres cada una, las cuales representarán el mapa de las
alcantarillas. El mapa contendrá un '#' en las posiciones donde haya una pared y un '
+ ' donde Sucre pueda pasar. Salida Deberá imprimir un entero que indique la distancia mínima que debe recorrer Sucre y su grupo para ir desde el punto de entrada hasta el punto de salida. En caso de que sea
imposible llegar del punto de entrada al punto de salida, imprima: “
No escape
”.
Entrada Ejemplo 1:
5 7
5 1 5 7
+##++##
#+#++++
#+++#+#
++##+++
+#+++#+
Salida Ejemplo 1:
12
Entrada Ejemplo 2:
5 7
1 1 5 7
+##++##
#+#++++
#+++#+#
++##+++
+#+++#+
Salida Ejemplo 2:
No escape
Chigüires Solitarios
Nombre del archivo fuente:
solitario.cpp
Estructura recomendada:
Pila
Los Chigüires son seres gregarios y gustan de andar en manadas. Sin embargo, de vez
en cuando algunos chigüires se deprimen y se apartan del grupo. Estos chigüires son
llamados “Chigüires Solitarios”. Estos chigüires no tienen compañeros chigüires en un
decámetro a la redonda.
Se requiere que dada la descripción del mapa de un hato en forma de matriz, donde cada
casilla representa un decámetro cuadrado, determine cuántos “Chigüires Solitarios” hay.
Las casillas tendrán ‘*’ en caso que haya un chigüire y ‘.’ en caso de no haber uno.
Entrada
:
La entrada consistirá en un solo caso de prueba, donde, la primera línea contendrá dos enteros N y M (1 < M , N < 1000), correspondientes a las dimensiones de la matriz NxM que representa el hato. Seguidamente habrá N líneas, cada una con la descripción de la fila N con el formato i antes descrito.
Salida
Debe imprimir una línea conteniendo un entero que indique la cantidad de chigüires
solitarios en ese mapa.
Entrada Ejemplo:
4 5
....*
...*.
*....
....*
Salida Ejemplo:
2
Jugando a las cartas
Nombre del archivo fuente:
cartas.cpp
Estructura recomendada:
Dipolo
Patty y Selma Bouvier (hermanas de Marge Simpson) están jugando un divertido juego de cartas. Al inicio de cada juego se escoge una carta y se mete en un lugar aleatorio del mazo. Quien encuentre la carta en el mazo es la ganadora. Patty, siempre comienza el juego.
La mecánica del juego es muy simple:
• Se toma una carta del tope del mazo.
• Se realiza la instrucción que indique la carta (si aplica).
• Esa carta se coloca otra vez en el fondo del mazo.
• El otro jugador repite el proceso.
Las cartas del mazo estarán conformadas por cartas con valor numérico entre el 1 y el
1000 (inclusive), sin embargo, hay ciertas cartas especiales:
• Las cartas con la letra
R
servirán para invertir el mazo. Lo que era el fondo del
mazo se vuelve el tope, y lo que era el tope se vuelve el fondo.
• Las cartas con el formato T , servirán para tomar una secuencia de n cartas y n
mandarlas al fondo del mazo. Se quiere que usted determine, dado la carta anadora y el orden de las cartas, quién es la ganadora (Patty o Selma) y cuantas cartas tuvo que mover para ganar.
Entrada:
La entrada consistirá en una primera línea con un entero
K (0<K <1001), indicando el valor de la carta ganadora. Seguidamente, una línea con un entero M (1< M <10000) indicando la cantidad de cartas contenidas en el mazo. Las siguientes M líneas contendrán el valor de la carta M . La lista de cartas comienza desde el fondo del mazo. El mazo puede i contener cartas repetidas.
Salida:
La salida contendrá dos líneas. La primera indicará el nombre de la jugadora ganadora.
La segunda, contendrá el número de movimientos que tuvo que hacer esa jugadora para
encontrar la carta ganadora. En caso de no haber solución, imprima
“No solution”.
Entrada Ejemplo 1:
10
4
3
938
10
R
Salida Ejemplo 1:
Selma
2
Entrada Ejemplo 2:
10
4
R
938
10
R
Salida Ejemplo 2:
No solution
Arreglo dinámico, String, Listas enlazadas, Cola, Pila y Dipolo.
Nombre del archivo fuente:
cyberpunk.cpp
Estructura recomendada:
String
La Red Bancaria del Llano (RBL) utiliza un protocolo de datos llamado “Chigüi858", el cual
establece una estructura de datos especifica para la codificación y decodificación de datos
en las terminales bancarias. Un mensaje en el formato “Chigüi858" se encuentra
estructurado de la siguiente manera:
1. Identificador de mensaje: 4 caracteres que indican el tipo de mensaje.
2. Bitmap primario: El primer carácter indica la presencia o no del bitmap secundario.
Los 63 caracteres restantes indican la presencia o no de los subsecuentes 63
campos de datos. Estos caracteres serán igual a '1' si el campo está incluido en el
paquete, de lo contrario será '0'.
3. Bitmap secundario: Este campo sólo estará presente si y sólo si el primer bit del
bitmap primario es '1'. El bitmap secundario también estará compuesto por 64
caracteres. Estos caracteres serán igual a '1' si el campo está incluido en el
paquete, de lo contrario serán '0'.
4. Datos: Los datos estarán después de los bitmaps. La cantidad de campos de datos
viene determinada por la cantidad de bits encendidos en los bitmaps. Los datos
vienen ordenados y codificados de la siguiente forma:
• Dos caracteres indicando el largo
Ni
del campo.
•
Ni
caracteres con el contenido del campo.
El pequeño Chigüi apodado
cyberchigüi
desea hurtar algunos datos bancarios, así que
se ha conectado furtivamente a la RBL. Sin embargo, no tiene idea de cómo interpretar
los datos. Es por ello que te pide ayuda para que decodifiques las cadenas interceptadas.
Entrada
Cada caso de entrada contendrá una cadena cuya longitud no excederá 20000 caracteres
y sólo estará compuesta por caracteres alfanuméricos.
Salida
Se debe mostrar: Identificador del mensaje (MTI), Bitmap primario y Bitmap secundario.
En caso de que algún campo no exista, no imprima nada. Imprima una línea en blanco
después de cada caso.
Entrada Ejemplo 1:
020001101100000000000000000000000000000000000000000000000000000000
000820-000Bfs13BancoDelLlano16010420301040522311IslasCaiman
Salida Ejemplo 1:
MTI:
0200
Primary Bitmap:
0110110000000000000000000000000000000000000000000000000000000000
Field 1:
20000Bfs
Field 2:
BancoDelLlano
Field 4:
0104203010405223
Field 5:
IslasCaiman
Entrada Ejemplo 2:
020011101000000000000000000000000000000000000000000000000000000000001000
-
0000000000000000000000000000000000000000000000000000000000000820000Bfs13-
BancoDelLlano16010420301040522311IslasCaiman
Salida Ejemplo 2:
MTI:
0200
Primary Bitmap:
1110100000000000000000000000000000000000000000000000000000000000
Secondary Bitmap:
1000000000000000000000000000000000000000000000000000000000000000
Field 1:
20000Bfs
Field 2:
BancoDelLlano
Field 4:
0104203010405223
Field 64:
IslasCaiman
Nota:
El “-” no forma parte de la entrada, está colocado para indicar que la línea no
termina allí, sino que continúa en la siguiente. En tal caso, la entrada solo posee tres
líneas: la cantidad de casos, el primer y segundo caso de prueba.
Laberinto Carcelario
Nombre del archivo fuente:
laberinto.cpp
Estructura recomendada:
Cola
Scofield y su banda se encuentran en la cárcel y un día deciden escapar. La banda decide
separarse en dos grupos, uno dirigido por Scofield y otro por Fernando Sucre. Scofield al
ser muy inteligente ha logrado diseñar una estrategia infalible para escapar, mientras que
Sucre se ha dirigido a las alcantarillas de la prisión, la cual, en pocas palabras, se puede
describir como “un laberinto".
Sucre tiene el mapa del laberinto y debe intentar escapar lo antes posible, ya que los
guardias de la prisión están tras la pista de la banda. Sucre y su equipo sólo pueden
moverse de una casilla a otra en el mapa si y sólo si éstas comparten un lado.
Se desea que usted implemente un algoritmo que, dado el mapa de las alcantarillas, el punto de entrada y el punto de salida, ayude a Sucre y a sus compañeros a escapar de la prisión.
Entrada
La primera línea tendrá dos enteros
R y C (2= R, C =500), los cuales indican el tamaño del mapa de las alcantarillas. La segunda línea contendrá 4 enteros con las coordenadas r1, c1, r2 y c2 (1 = r1, r2 = R, 1 = c1 , c2 = C , ( r1 , c1 ) ( r2 , c2 )), los cuales indican la posición ( r1 , c1 ) de la entrada y la posición ( r2 , c2 ) de la salida, respectivamente. Las siguientes R
líneas contendrán C caracteres cada una, las cuales representarán el mapa de las
alcantarillas. El mapa contendrá un '#' en las posiciones donde haya una pared y un '
+ ' donde Sucre pueda pasar. Salida Deberá imprimir un entero que indique la distancia mínima que debe recorrer Sucre y su grupo para ir desde el punto de entrada hasta el punto de salida. En caso de que sea
imposible llegar del punto de entrada al punto de salida, imprima: “
No escape
”.
Entrada Ejemplo 1:
5 7
5 1 5 7
+##++##
#+#++++
#+++#+#
++##+++
+#+++#+
Salida Ejemplo 1:
12
Entrada Ejemplo 2:
5 7
1 1 5 7
+##++##
#+#++++
#+++#+#
++##+++
+#+++#+
Salida Ejemplo 2:
No escape
Chigüires Solitarios
Nombre del archivo fuente:
solitario.cpp
Estructura recomendada:
Pila
Los Chigüires son seres gregarios y gustan de andar en manadas. Sin embargo, de vez
en cuando algunos chigüires se deprimen y se apartan del grupo. Estos chigüires son
llamados “Chigüires Solitarios”. Estos chigüires no tienen compañeros chigüires en un
decámetro a la redonda.
Se requiere que dada la descripción del mapa de un hato en forma de matriz, donde cada
casilla representa un decámetro cuadrado, determine cuántos “Chigüires Solitarios” hay.
Las casillas tendrán ‘*’ en caso que haya un chigüire y ‘.’ en caso de no haber uno.
Entrada
:
La entrada consistirá en un solo caso de prueba, donde, la primera línea contendrá dos enteros N y M (1 < M , N < 1000), correspondientes a las dimensiones de la matriz NxM que representa el hato. Seguidamente habrá N líneas, cada una con la descripción de la fila N con el formato i antes descrito.
Salida
Debe imprimir una línea conteniendo un entero que indique la cantidad de chigüires
solitarios en ese mapa.
Entrada Ejemplo:
4 5
....*
...*.
*....
....*
Salida Ejemplo:
2
Jugando a las cartas
Nombre del archivo fuente:
cartas.cpp
Estructura recomendada:
Dipolo
Patty y Selma Bouvier (hermanas de Marge Simpson) están jugando un divertido juego de cartas. Al inicio de cada juego se escoge una carta y se mete en un lugar aleatorio del mazo. Quien encuentre la carta en el mazo es la ganadora. Patty, siempre comienza el juego.
La mecánica del juego es muy simple:
• Se toma una carta del tope del mazo.
• Se realiza la instrucción que indique la carta (si aplica).
• Esa carta se coloca otra vez en el fondo del mazo.
• El otro jugador repite el proceso.
Las cartas del mazo estarán conformadas por cartas con valor numérico entre el 1 y el
1000 (inclusive), sin embargo, hay ciertas cartas especiales:
• Las cartas con la letra
R
servirán para invertir el mazo. Lo que era el fondo del
mazo se vuelve el tope, y lo que era el tope se vuelve el fondo.
• Las cartas con el formato T , servirán para tomar una secuencia de n cartas y n
mandarlas al fondo del mazo. Se quiere que usted determine, dado la carta anadora y el orden de las cartas, quién es la ganadora (Patty o Selma) y cuantas cartas tuvo que mover para ganar.
Entrada:
La entrada consistirá en una primera línea con un entero
K (0<K <1001), indicando el valor de la carta ganadora. Seguidamente, una línea con un entero M (1< M <10000) indicando la cantidad de cartas contenidas en el mazo. Las siguientes M líneas contendrán el valor de la carta M . La lista de cartas comienza desde el fondo del mazo. El mazo puede i contener cartas repetidas.
Salida:
La salida contendrá dos líneas. La primera indicará el nombre de la jugadora ganadora.
La segunda, contendrá el número de movimientos que tuvo que hacer esa jugadora para
encontrar la carta ganadora. En caso de no haber solución, imprima
“No solution”.
Entrada Ejemplo 1:
10
4
3
938
10
R
Salida Ejemplo 1:
Selma
2
Entrada Ejemplo 2:
10
4
R
938
10
R
Salida Ejemplo 2:
No solution
Valora esta pregunta


0