![]() |
|
|||||||
| Registrarse | FAQ | Lista de usuarios | Calendario | Buscar | Posts de hoy | Marcar como leído |
![]() |
|
|
LinkBacks | Herramientas | Calificar discusión | Estilo |
|
|
#1 (permalink) |
|
Zorratuner
|
Acertijo
Bueno ahí va, a mi me ha resultado bastante complicao sacarlo.
Un ladrón, un policía, un padre, una madre, dos niños y dos niñas (en total 8 personas), quieren pasar a la otra orilla. Las condiciones son estas: - El ladrón, si hay gente delante, tiene que estar acompañado del policía. - Cualquiera de los niños no se pueden quedar solos con la madre, tiene que estar su padre. - Cualquiera de las niñas no se pueden quedar solas con el padre, tiene que estar su madre. - Sólo hay una barca. - Se pueden dar los viajes que quieran. - En la barca sólo caben dos personas. - Sólo saben conducirla: el padre, la madre y el policía. Lo mejor es que cojáis monedas y os liéis a hacerlo. Yo acabé con la cabeza loca. |
|
|
|
|
|
#2 (permalink) |
|
Tarjetero
|
Re: Acertijo
esto es algo viejo ya,
podeis jugarlo aqui. http://www.geocities.com/leviataniii...iverIQGame.swf Y la solucion ![]() jimmy te va a gustar ![]() #include <stdio.h> #define PADRE 0x0001 #define MADRE 0x0002 #define POLICIA 0x0004 #define HIJO1 0x0008 #define HIJO2 0x0010 #define HIJA1 0x0020 #define HIJA2 0x0040 #define LADRON 0x0080 #define BARCA 0x0100 #define ESTADO_INICIAL 0x0000 #define ESTADO_FINAL 0x01FF #define CAMBIOS 19 unsigned short cambios [CAMBIOS] = { 0x0101, 0x0102, 0x0104, 0x0103, 0x0105, 0x0109, 0x0111, 0x0121, 0x0141, 0x0106, 0x010A, 0x0112, 0x0122, 0x0142, 0x010C, 0x0114, 0x0124, 0x0144, 0x0184}; typedef struct { int visitado; int posible; }TYPE_estado; int lado(unsigned short estado, unsigned short individuo) { if (estado & individuo) return 1; else return 0; } int estadoPosible(unsigned short estado) { if (lado(estado,PADRE) != lado(estado,MADRE) && (lado(estado,PADRE) == lado(estado,HIJA1) || lado(estado,PADRE) == lado(estado,HIJA2) || lado(estado,MADRE) == lado(estado,HIJO1) || lado(estado,MADRE) == lado(estado,HIJO2))) return 0; if (lado(estado,POLICIA) != lado(estado,LADRON) && (lado(estado,LADRON) == lado(estado,HIJA1) || lado(estado,LADRON) == lado(estado,HIJA2) || lado(estado,LADRON) == lado(estado,HIJO1) || lado(estado,LADRON) == lado(estado,HIJO2) || lado(estado,LADRON) == lado(estado,PADRE) || lado(estado,LADRON) == lado(estado,MADRE))) return 0; return 1; } void iniciaEstados(TYPE_estado *estados) { for (int i = 0 ; i < 512 ; i++) { estados[i].visitado = 0; estados[i].posible = estadoPosible(i); } } void muestraEstado(unsigned short estado) { for (int i = 0x0001 ; i <= 0x0100 ; i *= 2) { if (estado & i) printf("1"); else printf("0"); } printf("\n"); } int resuelve(TYPE_estado *estados, unsigned short estado) { if (!estados[estado].posible || estados[estado].visitado) return 0; if (estado == ESTADO_FINAL) return 1; estados[estado].visitado = 1; // Pruebo los siguientes int ret; unsigned short estadoSiguiente; for (int i = 0 ; i < CAMBIOS ; i++) { // Compruebo si puedo realizar el cambio if ((estado & cambios[i]) == cambios[i] || (estado & cambios[i]) == 0) { estadoSiguiente = estado ^ cambios[i]; ret = resuelve(estados, estadoSiguiente); if (ret) { muestraEstado(estadoSiguiente); return 1; } } } return 0; } int main() { TYPE_estado estados[512]; iniciaEstados(estados); if (!resuelve(estados, ESTADO_INICIAL)) { printf("No hay solucion\n"); } else { printf("000000000\n"); } return 0; } |
|
|
|
|
|
#6 (permalink) |
|
Zorratuner
|
Re: Acertijo
Policia se lleva al ladrón y vuelve el poli
Policia se lleva un niño y vuelve con el ladrón Padre se lleva un niño y vuelve sólo Padre lleva a la madre y vuelve la madre Policia lleva al ladrón y vuelve el padre Madre lleva al padre y vuelve la madre Madre lleva una niña y vuelve policia y ladrón Policia lleva a una niña y vuelve el poli Poli lleva al ladrón |
|
|
|
|
|
#11 (permalink) | |
|
Life's Too Short...
|
Re: Acertijo
Cita:
Contesto exactamente igual pero no dos post mas abajo, sino 2 paginas mas adelante ![]() PD: Ramon puta ![]() ![]() VENDO AUDIO/MULTIMEDIA: CLARION VRX6570RZ-DSP CLARION-DVD VIETA DIVX-TRANSFORMADOR 12-220V...Rebajado!!! Audi Allroad 2.5TDI Quattro Tiptronic en venta:
|
|
|
|
|
![]() |
| Herramientas | |
| Estilo | Califica esta discusión |
|
|