06-09-2011, 15:59
Necesito ayuda en ANSI C para esto porque realmente lo intente codificar por mi cuenta y me compila pero no soy experto en ANSI C, digamos que utilize las herramientas que te brinda Sintaxis + cosas que busqué por internet y el resultado fue:
El problema es el siguiente:
Se tiene una matriz/vector de m x n de int (int pileta[m][n]). Cada celda de la matriz representa un espacio en forma cuadrada de, por ejemplo, 1 mts2 en donde se pueden apilar cubos (por ejemplo de cemento) de 1 mts3.
El int contenido en la celda, indica cuantos bloques (cubos) hay apilados uno arriba del otro (siempre contenidos en el espacio de 1mts2 de la celda).
Se desea saber cuanta agua entra en la "pileta", teniendo en cuenta que el agua fluye solo horizontalmente y verticalmente (en diagonal no), y teniendo en cuenta también que la pileta puede rebalsar de agua y en ese caso la cantidad de agua que puede almacenar la pileta seria 0.
Ejemplos:
Mi estrategia fallida:
Si alguno me puede ayudar se lo agradecería bastante... por ahi es una pelotudes pero la verdad no se que más hacer...
Mi código no lo paso por una cuestión de que no lo van a entender ni a gancho y aparte esta muy desprolijo xD.
Bueno gracias de antemano a el/la/los que me ayuden xD
Y si nadie me puede ayudar seguiré intentando arreglar mi código xDDDD[/font]
- Compila, pero el programa se termina cerrando solo (el clásico ENVIAR - NO ENVIAR xD)
El problema es el siguiente:
Se tiene una matriz/vector de m x n de int (int pileta[m][n]). Cada celda de la matriz representa un espacio en forma cuadrada de, por ejemplo, 1 mts2 en donde se pueden apilar cubos (por ejemplo de cemento) de 1 mts3.
El int contenido en la celda, indica cuantos bloques (cubos) hay apilados uno arriba del otro (siempre contenidos en el espacio de 1mts2 de la celda).
Se desea saber cuanta agua entra en la "pileta", teniendo en cuenta que el agua fluye solo horizontalmente y verticalmente (en diagonal no), y teniendo en cuenta también que la pileta puede rebalsar de agua y en ese caso la cantidad de agua que puede almacenar la pileta seria 0.
Ejemplos:
Spoiler: Mostrar
9 9 9
9 1 9 ---Debería devolver---> 8
9 9 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 16
9 9 9 9
9 1 9 9
9 1 1 9 ---Debería devolver---> 0
9 9 9 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 2
9 2 8 9
9 9 9 9
9 2 1 9 ---Debería devolver---> 1
9 2 8 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 14
9 8 8 9
9 9 9 9
9 3 2 9 ---Debería devolver---> 1
9 2 8 9
1 9 1 1
9 3 9 1 ---Debería devolver---> 6
1 9 1 1
9 1 9 ---Debería devolver---> 8
9 9 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 16
9 9 9 9
9 1 9 9
9 1 1 9 ---Debería devolver---> 0
9 9 9 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 2
9 2 8 9
9 9 9 9
9 2 1 9 ---Debería devolver---> 1
9 2 8 9
9 9 9 9
9 1 1 9 ---Debería devolver---> 14
9 8 8 9
9 9 9 9
9 3 2 9 ---Debería devolver---> 1
9 2 8 9
1 9 1 1
9 3 9 1 ---Debería devolver---> 6
1 9 1 1
Mi estrategia fallida:
Spoiler: Mostrar
1.Se recibe una matriz.
2.Se recorre la matriz por niveles (es decir, primero sumo todas las celdas en 1, despues en 2, etc etc hasta el nivel máximo)
3.Al encontrar un elemento en la matriz del nivel recorrido, se fija si desborda. Si no desborda, se suma 1 y se guarda las coordenadas de la en un vector/pila.
4.Se ejecuta recursivamente la misma acción para los 4 elementos de la matriz de los costados (los que no sean borde), creando, de esta forma, un camino.
5.Si al finalizar un camino, el flag desborda esta en TRUE getWay(que devuelve la cantidad de un camino) devuelve 0 y todos los elementos de la matriz, cuyas coordenadas estan en el vector/pila se ponen en -1.
6.getLevel devuelve la suma de todos los (caminos)getWay pertenecientes al nivel
7.getMeters devuelve la suma de todos los (niveles)getLevel.
2.Se recorre la matriz por niveles (es decir, primero sumo todas las celdas en 1, despues en 2, etc etc hasta el nivel máximo)
3.Al encontrar un elemento en la matriz del nivel recorrido, se fija si desborda. Si no desborda, se suma 1 y se guarda las coordenadas de la en un vector/pila.
4.Se ejecuta recursivamente la misma acción para los 4 elementos de la matriz de los costados (los que no sean borde), creando, de esta forma, un camino.
5.Si al finalizar un camino, el flag desborda esta en TRUE getWay(que devuelve la cantidad de un camino) devuelve 0 y todos los elementos de la matriz, cuyas coordenadas estan en el vector/pila se ponen en -1.
6.getLevel devuelve la suma de todos los (caminos)getWay pertenecientes al nivel
7.getMeters devuelve la suma de todos los (niveles)getLevel.
Si alguno me puede ayudar se lo agradecería bastante... por ahi es una pelotudes pero la verdad no se que más hacer...
Mi código no lo paso por una cuestión de que no lo van a entender ni a gancho y aparte esta muy desprolijo xD.
Bueno gracias de antemano a el/la/los que me ayuden xD
Y si nadie me puede ayudar seguiré intentando arreglar mi código xDDDD[/font]