Photolog
Back to list of problems
Oil Deposits
572.c
/* Oil Deposits */
#include <stdio.h>
#include <stdlib.h>
int m,n;
char grid[102][102];
void
recorre(int i, int j) {
if (i<0 || i>=m || j<0 || j>=n) {
return;
}
if (grid[i][j]!='@') {
return;
}
grid[i][j]='-';
recorre(i-1,j-1);
recorre(i-1,j);
recorre(i-1,j+1);
recorre(i,j-1);
recorre(i,j+1);
recorre(i+1,j-1);
recorre(i+1,j);
recorre(i+1,j+1);
}
void
calc(void) {
int i,j;
int num=0;
for(i=0; i<m; i++) {
for(j=0; j<n; j++) {
if (grid[i][j]=='@') {
num++;
recorre(i,j);
}
}
}
printf("%d\n", num);
}
int
main(void) {
int i,j;
while(1) {
scanf("%d %d", &m, &n);
if (m==0) {
break;
}
for(i=0; i<m; i++) {
char buf[1024];
scanf("%s", buf);
for(j=0; j<n; j++) {
grid[i][j] = buf[j];
}
}
calc();
}
exit(0);
}









