elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Guía rápida para descarga de herramientas gratuitas de seguridad y desinfección


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación C/C++ (Moderadores: Eternal Idol, Littlehorse, K-YreX)
| | |-+  area maxima
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: area maxima  (Leído 2,581 veces)
mapers


Desconectado Desconectado

Mensajes: 638


Ver Perfil
area maxima
« en: 10 Septiembre 2010, 07:10 am »

hola de nuevo por aca ,me dejaron hacer este problema es sobre como calcular la maxima extension que tiene  una area ....

Especificación de entrada

La primera línea de entrada contiene un T entero, el número de casos de prueba seguir.

Cada caso de prueba comienza con un entero N (1 <= n <= 10) que indica el tamaño de la tierra cuadrícula. El próximo N líneas cada una contiene caracteres N. Cada personaje ser '.' (Área libre) o '#' (obstáculo). Su casa debe ser construida en zona libre.
Especificación de salida

Para cada caso de prueba, la producción de una línea del tamaño de la plaza más grande en la zona de libre.


Ejemplo de entrada

2
10
..........
.#####....
..#..###..
...##.....
...#..#...
...#...###
....######
..........
##########
#########.
5
##..#
....#
.#..#
####.
.#..#
Ejemplo de salida

3
2


estuve pénsando como poder implementarlo y maso menos tengo una idea osea tomo el primer elemento de la fila. Si está vacío, tomo el segundo, si está vacío, entonces me fijo en la segunda fila a ver si hasta el segundo elemento está vacío. Si es así tomo el tercer elemento de la primer fila, si éste es vacío, me fijo en la segunda y tercer fila si está vacío hasta el tercer elemento... y así sucecivamente
cuando no encuentro un vacío, el cuadrado máximo está en el número anterior...
ahora mi problema es como controlar los bucles  para poder hacer esto .......publlicare mi codigo cuando lo tenga casi listo ..por lo ptonto queria algunas ideas de como poder implementarlo mejor .......


O podria hacerlo los 10 casos independientes  ................verdad


cambie el . por el 1 y el # por el 0  y codifique esto pero no me  convence

Código
  1. #include<iostream.h>
  2. #define FIL 10
  3. #define COL 10
  4.  
  5. void leermatriz(int m[][COL],int f, int c)
  6. {
  7.    int i=0,j=0;
  8.    for(i=0;i<f;i++)
  9.        for(j=0;j<c;j++)
  10.            {
  11.                cout<<"MATRIZ"<<i<<"]["<<j<<"]";
  12.                cin>>m[i][j];
  13.            }
  14. }
  15.  
  16. void imprimir(int m[][COL],int f, int c)
  17. {
  18.    int j=0,i=0;
  19.    for(i=0;i<f;i++)
  20.    {   for(j=0;j<c;j++)            
  21.                cout<<m[i][j]<<"  ";
  22.                cout<<endl;
  23.  
  24.            }
  25. }
  26. int areamaxima(int m[][COL],int f, int c)
  27. {
  28.    int i=0,j=0,matrizdedos=0,y=0,x=0;
  29.    for(i=0;i<f;i++)
  30.    {  for(j=0;j<c;j++)
  31.            {
  32.               if(m[i][j]==1)
  33.               {
  34.                    x++;
  35.                }    
  36.                    if(m[i+1][j]==1)
  37.                    {
  38.                        y++;
  39.                    }
  40.                    if(m[i][j]==0 ||m[i+1][j]==0)
  41.                    {
  42.                       if(x==y)
  43.                       {
  44.                            matrizdedos++;
  45.                        }
  46.                    }
  47.            }
  48.    }
  49.    return matrizdedos++;
  50.  
  51. }
  52.  
  53.  
  54. int main()
  55.  
  56. {
  57. int m[FIL][COL],f=0,c=0;
  58. cout<<"INGRSE MATRIZ"<<endl;
  59. cout<<"NUMERO DE FILAS"<<endl;
  60. cin>>f;
  61. cout<<"NUMERO DE COLUMNAS"<<endl;
  62. cin>>c;
  63. leermatriz(m,f,c);
  64. imprimir(m,f,c);
  65. cout<<areamaxima(m,f, c);
  66. system("pause");
  67.  
  68. }
  69.  
  70. }
  71.  

aki trato de obtener las matrizes de dos por dos .........pero no me controla los saltos cuando encuentra un 0 (#)     una ayudita ........... porque de hay nomas lo sacaria para la de 3 por 3 la de 4 por 4 la de 5 por 5 pero creo que seria mejor meterlo en un case.......


« Última modificación: 10 Septiembre 2010, 08:12 am por mapers » En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Tutorial MÁXIMA CALIDAD EN VCD
Multimedia
mytnick 0 3,896 Último mensaje 4 Octubre 2009, 01:45 am
por mytnick
Area de impresion en Excel =s
Software
_CrisiS_ 2 2,895 Último mensaje 10 Abril 2011, 02:12 am
por _CrisiS_
Introducción al área
Unix/Unix-Like
Foxy Rider 3 7,947 Último mensaje 15 Septiembre 2013, 19:11 pm
por Epzylon
Resolucion maxima
Windows
gAb1 0 1,598 Último mensaje 3 Enero 2013, 02:59 am
por gAb1
AREA 51 « 1 2 3 »
Foro Libre
Anonymous V de Vendetta 27 15,858 Último mensaje 21 Enero 2014, 20:11 pm
por darg94
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines