Está en la página 1de 2

#include <stdio.

h>

#define N 6

int min(int a, int b);


void readMatrix(int mat[N][N]);
void printMatrix(int mat[N][N]);
int findSubSquare1(int mat[N][N], int iF, int jF);

int main(int argc, char** argv) {


int mat[N][N];
int iF, jF;
readMatrix(mat);
scanf("%d %d", &iF, &jF);
printf("%d", findSubSquare1(mat, iF, jF));
return 0;
}

int findSubSquare1(int mat[][N], int iF, int jF) {


int l, i, j;
int failed = 0;
// el mximo lado posible que encontraremos
// ser el mnimo entre iF y jF ms 1
int lMax = min(iF, jF) + 1;

for (l = 0; l < lMax; l++) {


/* En cada iteracin bsicamente estamos
* verificando si existe un cuadrado de lado L que cumpla
* las restricciones indicadas. En la siguiente iteracin
* verificamos si existe un cuadrado de lado L + 1, procesando
* solo los nuevos elementos de la matriz que todava no
* se han procesado. Nos basamos en que ya sabemos si existe
* o no un cuadrado de lado L para verificar si existe uno
* de lado L + 1. La siguiente matriz muestra de manera intuitiva
* el orden en el que verificaremos los 1s de acuerdo a lo
* mencionado anteriormente.
* 3 3 3 3
* 3 2 2 2
* 3 2 1 1
* 3 2 1 0
*/
i = l;
j = 0;
// recorremos la nueva fila, es decir, con i fijo y j variando
while (!failed && j < l) {
if (!mat[iF - i][jF - j]) {
failed = 1;
break;
}
j++;
}
// recorremos la nueva fila, es decir, con i variando y j fijo
while (!failed && i >= 0) {
if (!mat[iF - i][jF - j]) {
failed = 1;
break;
}
i--;
}

if (failed) break;
}

return l;
}

void readMatrix(int mat[N][N]) {


int n;
int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
scanf("%1d", &n);
mat[i][j] = n;
}
}
}

void printMatrix(int mat[N][N]) {


int i, j;
for (i = 0; i < N; i++) {
for (j = 0; j < N; j++) {
printf("%3d", mat[i][j]);
}
printf("\n");
}
}

int min(int a, int b) {


if (a < b) return a; else return b;
}

También podría gustarte

  • Programación Orientada A Objetos Con Java y UML
    Programación Orientada A Objetos Con Java y UML
    Documento21 páginas
    Programación Orientada A Objetos Con Java y UML
    ALEXIS HERNÁN SUSANIBAR ROSAS
    0% (1)
  • Programación Orientada A Objetos Con Java y UML
    Programación Orientada A Objetos Con Java y UML
    Documento21 páginas
    Programación Orientada A Objetos Con Java y UML
    ALEXIS HERNÁN SUSANIBAR ROSAS
    0% (1)
  • Caso 2013 0 VIPERSA
    Caso 2013 0 VIPERSA
    Documento2 páginas
    Caso 2013 0 VIPERSA
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Modelo ICACIT
    Modelo ICACIT
    Documento43 páginas
    Modelo ICACIT
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Programacion Web
    Programacion Web
    Documento200 páginas
    Programacion Web
    Carlos Leonardo Pérez Lizama
    Aún no hay calificaciones
  • Airtable - Manual
    Airtable - Manual
    Documento22 páginas
    Airtable - Manual
    ALEXIS HERNÁN SUSANIBAR ROSAS
    100% (2)
  • Diapositivas BusquedaLocal
    Diapositivas BusquedaLocal
    Documento16 páginas
    Diapositivas BusquedaLocal
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Flujograma A
    Flujograma A
    Documento1 página
    Flujograma A
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Flujograma
    Flujograma
    Documento1 página
    Flujograma
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • DFD Lab3 - Nivel 1 - Gaa
    DFD Lab3 - Nivel 1 - Gaa
    Documento1 página
    DFD Lab3 - Nivel 1 - Gaa
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Ejemplo DFD
    Ejemplo DFD
    Documento17 páginas
    Ejemplo DFD
    Joskar Hernandez R
    Aún no hay calificaciones
  • IEE240 Capítulo 7
    IEE240 Capítulo 7
    Documento35 páginas
    IEE240 Capítulo 7
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Ex2 20191
    Ex2 20191
    Documento2 páginas
    Ex2 20191
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Python - Edma-7.2
    Python - Edma-7.2
    Documento15 páginas
    Python - Edma-7.2
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • 1 Grafo
    1 Grafo
    Documento73 páginas
    1 Grafo
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • 1 Grafo
    1 Grafo
    Documento7 páginas
    1 Grafo
    Jose Eduardo Tirado Verbel
    Aún no hay calificaciones
  • Grafos
    Grafos
    Documento42 páginas
    Grafos
    EddyTorresAcurio
    Aún no hay calificaciones
  • Ejercicio 2 - Divide y Vencerás
    Ejercicio 2 - Divide y Vencerás
    Documento1 página
    Ejercicio 2 - Divide y Vencerás
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • QUI134 Estructura y Valencia 2016 1
    QUI134 Estructura y Valencia 2016 1
    Documento12 páginas
    QUI134 Estructura y Valencia 2016 1
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Ciencia, Ética y Cristianismo
    Ciencia, Ética y Cristianismo
    Documento10 páginas
    Ciencia, Ética y Cristianismo
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • IC Prof Sierra Capitulo03 Clase03 De4en4
    IC Prof Sierra Capitulo03 Clase03 De4en4
    Documento8 páginas
    IC Prof Sierra Capitulo03 Clase03 De4en4
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones
  • Dina Mica
    Dina Mica
    Documento38 páginas
    Dina Mica
    ALEXIS HERNÁN SUSANIBAR ROSAS
    Aún no hay calificaciones