View Code of Problem 62

#include <bits/stdc++.h>
using namespace std;

void check(char input[][120], int i, int j){
    input[i][j] = '0';
    if(input[i-1][j-1] == '1') check(input, i-1, j-1);
    if(input[i-1][j] == '1') check(input, i-1, j);
    if(input[i-1][j+1] == '1') check(input, i-1, j+1);
    if(input[i][j-1] == '1') check(input, i, j-1);
    if(input[i][j+1] == '1') check(input, i, j+1);
    if(input[i+1][j-1] == '1') check(input, i+1, j-1);
    if(input[i+1][j] == '1') check(input, i, j);
    if(input[i+1][j+1] == '1') check(input, i+1, j+1);
}
int main(){
    int n, m;
    while(cin >> n >> m && (n || m)){
        char input[n][m];
        int sum = 0;
        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++)
                cin >> input[i][j];

        for(int i = 0; i < n; i++)
            for(int j = 0; j < m; j++){
                if(input[i][j] == '1'){
                    check(input, i, j);
                    sum ++;
                }
            }
        cout << sum << endl;
    }
    return 0;
}
/*
Main.cc: In function 'int main()':
Main.cc:27:27: error: cannot convert 'char (*)[m]' to 'char (*)[120]'
                     check(input, i, j);
                           ^~~~~
Main.cc:4:17: note:   initializing argument 1 of 'void check(char (*)[120], int, int)'
 void check(char input[][120], int i, int j){
            ~~~~~^~~~~~~~~~~~
*/

Double click to view unformatted code.


Back to problem 62