#include <iostream> using namespace std; void check(char in[122][122], int i, int j){ in[i][j] = '0'; if(in[i-1][j-1] == '1') check(in, i-1, j-1); if(in[i-1][j] == '1') check(in, i-1, j); if(in[i-1][j+1] == '1') check(in, i-1, j+1); if(in[i][j-1] == '1') check(in, i, j-1); if(in[i][j+1] == '1') check(in, i, j+1); if(in[i+1][j-1] == '1') check(in, i+1, j-1); if(in[i+1][j] == '1') check(in, i, j); if(in[i+1][j+1] == '1') check(in, i+1, j+1); } int main(){ int n, m; while(cin >> n >> m && n && m){ char input[122][122]; int sum = 0; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++) cin >> input[i][j]; for(int i = 1; i <= n; i++) for(int j = 1; j <= m; j++){ if(input[i][j] == '1'){ check(input, i, j); sum ++; } } cout << sum << endl; } return 0; } |
Double click to view unformatted code.