Resolver un ejercicio de programación
Esta pregunta es un problema de Hammill. Aún no lo he hecho, pero mi idea es correcta. Echa un vistazo a mi programa.
#include
usando el espacio de nombres std;
#define N 21
int m,n;
int dead1,dead2 ;
int a[N][N];
bool bj[N][N];
bool dfs(int x,int y,int num);
suma nula(int x)
{
if(x<=1)dead1++;
else dead2++;
}
búsqueda bool(int i,int j)
{
bool x=true;
if(!bj[i-1][j] && i>1){sum(a[i-1][j]);/*cout< if(!bj[i][j-1] && j>1){sum(a[i][j-1]);/*cout< if(!bj[i+1][j] && i if(!bj[i] [j+1] && j return x; } void init(void) { freopen("mt. in","r",stdin); freopen("mt.out","w",stdout); cin>>m>>n; while(m || n){ for(int i=1;i<=m;i++) for(int j=1;j<= n;j++){ cin>>bj[i][j]; if(bj[i][j])continuar; if (i!=1)a[i-1][j]++; si(j!=1)a[i][j-1]++; if(j!=n)a[i][j+1]++; if(i!=n)a[i+1][j]++; /*if(i!=n){if(!a[i-1][j] && !bj[i-1][j]){break;dead=3;} if(a[i-1][j]==1 && !bj[i-1][j])muerto ++;} if(i==n){if(!a[i][j-1] && !bj[i][j-1]){break;dead=3; } if(a[i][j-1]==1 && !bj[i][j-1])muerto++;} if(i==m && j==n){if(!a[i][j] && !bj[i][j]){break;dead=3;} if(a[i][j ]==1 && !bj[i][j])muerto++;}*/ //if(!a[i][j]){num++;if(!(sx && sy) ){sx=i;sy=j;}} } para(int i=1;i<=m;i++) para( int j=1;j<=n;j++) if(a[i][j]==1 && !bj[i][j])if(buscar(i,j)) {dead2=5;break;} if(dead1<=2 && dead2<=1)cout<<"Sí"< /*cout< for(int i=1;i<=m;i++){ for(int j=1;j< =n;j++) cout< cout< } cout< for(int i=1;i<=m;i++){ for(int j=1;j<=n; j++)