1. 程式人生 > >LRJ-Example-06-12-Uva572

LRJ-Example-06-12-Uva572

col blog istream == etl char bool bsp space

#define _CRT_SECURE_NO_WARNINGS
#include <cstdio>
#include <cstring>
#include <string>
#include <istream>
#include <iostream>
using namespace std;

const int maxm = 100;
char grid[maxm + 5][maxm + 5];
int visited[maxm + 5][maxm + 5];
int m, n;
int ans;

bool count(int i, int
j) { if (i < 0 || i >= m || j < 0 || j >= n || grid[i][j] == * || visited[i][j]) return false; visited[i][j] = 1; count(i + 1, j); count(i - 1, j); count(i, j + 1); count(i, j - 1); count(i + 1, j + 1); count(i + 1, j - 1); count(i - 1
, j + 1); count(i - 1, j - 1); return true; } int main() { while (cin >> m >> n && m > 0) { memset(grid, 0, sizeof(grid)); memset(visited, 0, sizeof(visited)); ans = 0; string line; getline(cin, line); // consume the newline for
(int i = 0; i < m; i++) { getline(cin, line); for (int j = 0; j < n; j++) { grid[i][j] = line[j]; } } for (int i = 0; i < m; i++) { for (int j = 0; j < n; j++) { if (count(i, j)) ans++; } } cout << ans << endl; } return 0; }

LRJ-Example-06-12-Uva572