lunes, 8 de marzo de 2010

10189 - Minesweeper / Buscamina


/*

10189 - Minesweeper
Judge : UVA
time:0.004
*/

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define MAX 100
char entrada[MAX+1][MAX+1];
int salida[MAX+2][MAX+2];

int main(int argc,char **argv)
{
int m,n,i,j;
int cont=0;
while(scanf("%d%d",&m,&n)!=EOF)
{
if(m==0||n==0)
break;
if(cont>0)
printf("\n");
cont++;
for( i=0;i<m;i++)
{

scanf("%s",entrada[i]);


}
for(i=0;i<=m+1;i++)
for(j=0;j<=n+1;j++)
salida[i][j]=0;

for(i=1;i<=m;i++)
for(j=1;j<=n;j++)
{
if(entrada[i-1][j-1]=='*')
{
salida[i-1][j-1]++;
salida[i-1][j]++;
salida[i-1][j+1]++;
salida[i][j-1]++;
salida[i][j+1]++;
salida[i+1][j-1]++;
salida[i+1][j]++;
salida[i+1][j+1]++;


}
}
printf("Field #%d:\n",cont);
for(i=0;i<m;i++)
{

for(j=0;j<n;j++)
{
if(entrada[i][j]!='*')
printf("%d",salida[i+1][j+1]);
else printf("*");

}
printf("\n");
}

}
return 0;
}

No hay comentarios: