Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <cstdio>
- #include <cstring>
- using namespace std;
- char grid[100][100];
- int x[] = {1,1,1,0,0,-1,-1,-1};
- int y[] = {1,0,-1,1,-1,1,0,-1};
- bool didVisit[100][100];
- int row,column,cnt;
- void operationTorchlight(int a,int b) {
- didVisit[a][b] = 1;
- int p,X,Y;
- for (p=0;p<8;p++) {
- X = a + x[p];
- Y = b + y[p];
- if (X>=0 && X<row && Y>=0 && Y<column && !didVisit[X][Y]) {
- didVisit[X][Y] = 1;
- if (grid[X][Y] == '@') {
- operationTorchlight(X,Y);
- }
- }
- }
- }
- int main() {
- while (1) {
- scanf("%d%d",&row,&column);
- if (row == 0 && column == 0) break;
- cnt=0;
- int i,j;
- for (i=0;i<row;i++) scanf("%s", &grid[i]);
- for (i=0;i<row;i++) {
- for (j=0;j<column;j++) {
- if (!(didVisit[i][j])) {
- didVisit[i][j] = 1;
- if (grid[i][j] == '@') {
- cnt++;
- operationTorchlight(i,j);
- }
- }
- }
- }
- printf("%d\n", cnt);
- for(i=0;i<100;i++) {
- for (j=0;j<100;j++) grid[i][j] = '*';
- }
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment