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); }