Asuntos Oficiales > Retos

 El Rey Y Sus Caballos

(1/6) > >>

Binary:
NIVEL: MEDIO

Introduccion:
En este juego de ajedrez, el caballo cumple un rol un poco mas importante que solo moverse. Tiene como objetivo, juntarse con el rey, y/o llevarlo hacia algun casillero del tablero.

Descripción:
Crear un programa, que dado un tablero cuadrado de N (5 <= N <= 20) cuadraditos de lado,  K (1 <= K <= 400) caballos, su posición y la posición del rey en el tablero, determine el menor numero posible de movimientos, que permitirian a todos los caballos, juntarse con el rey.

El rey se mueve en las 8 direcciones, 4 casilleros adyacentes y los 4 diagonales.
El caballo se mueve a 8 direcciones: cada una es diferente de la inicial con 2 unidades y 1 unidad de (x, y) o (y, x). (Movimiento clasico!!)

Mas de una figura puede estar en el mismo cuadradito en un instante dado.
Estando uno o mas caballos en el casillero del rey, este puede viajar con el caballo (como se mueve el caballo).
El rey, no necesariamente tiene que viajar con caballo, eso es solo una posibilidad.
Las piezas se pueden juntar en cualquier casilla, el problema es encontrar la que menos movimientos necesitara, e imprimir en la salida esa cantidad.

Entrada (caballo.in):
En la primera linea: 2 enteros: N y K
En la segunda linea: x y (la posición del rey al inicio del juego)
Lineas 3…3+K-1: x y (la posición de cada caballo)

Salida (caballo.out):
Un solo entero: el numero de movimientos minimos que hay que realizar para lograr juntar todas las piezas del tablero en un solo casillero.

Ejemplo:

Entrada:
8 4
4 4
1 3
1 8
8 1
8 8

Salida:
10

Explicacion de la salida:
Se juntan en (2,5).
Caballo 1: 1,3 – 2,5 (1 movimiento)
Caballo 2: 1,8 – 3,7 – 2,5 (2)
Caballo 3: 8,1 – 7,3 – 6,5 – 4,4 (se lleva el rey y..) – 2,5 (4 movimientos)
Caballo 4: 8,8 – 6,7 – 4,6 – 2,5 (3)
1 + 2 + 4 + 3 = 10 moves.


P.D.1: Denle, no es tan dificil, cosa de una horita.
P.D.2: Este reto lo tengo programado para un par de semanas, pero la verdad me da lo mismo cuando se quita... depende del interes que hay hacia el.
P.D.3: Cualquier pregunta, por favor, no se la aguanten.

Binary:
?! 1 dia sin que nadie lo haya resolvido?  :blink:

REDD:
oye ya tengo la solucion y voy a programarla pero como el la primera vez que participo en esta seccion de retos, tengo una duda que yo creo mas bien es para juanK (el moderador). eso de salida y entrada, o sea caballo.in y caballo.out, significa que los datos para el problema deben de ser leidos de un archivo(llamado caballo.in) y la salida debe ir a dar a otro(caballo.out).

Perdon si es una pregunta boba pero como te digo es la primera vez que intento participar

Binary:
Por favor, REDD, tu pregunta esta bien puesta.
Efectivamente....

Los datos te vendran en el archivo "caballo.in", de donde los leeras, los procesaras y luego escribiras tu salida en "caballo.out".

xxx.in y xxx.out es igual que manipular xxx.txt (por si las dudas)

Saludos.

JuanK:
hola..
aprovecho para aclarar que no es no quiera participar en los retos y que me parezcan simples..
por el conmtrario yo seria feliz haciendo todas estas cosas, pero a diferencia del año pasado hoy en dia no tengo de nada... y me toc< conformame con leer lo quie ustedes hacen.. animo!!!

Navegación

[0] Índice de Mensajes

[#] Página Siguiente

Ir a la versión completa