import java.util.Scanner; public class Main { public static void main(String[] args) { // TODO Auto-generated method stub Scanner sc = new Scanner(System.in); while(sc.hasNext()) { int m = sc.nextInt(); int n = sc.nextInt(); sc.nextLine(); if(m == 0 && n == 0) { break; } int[][] arr = new int[m][n]; for(int i = 0; i < m; i ++) { if(n != 0) { String nextLine = sc.nextLine(); for(int j = 0; j < n; j ++) { arr[i][j] = Integer.parseInt(nextLine.charAt(j) + ""); } } } /*System.out.println("--------"); for(int i = 0; i < m; i ++) { for(int j = 0; j < n; j ++) { System.out.print(arr[i][j] + " "); } System.out.println(); }*/ int sum = 0; for(int i = 0; i < m; i ++) { for(int j = 0; j < n; j ++) { if(arr[i][j] == 1) { sum ++; Tozero(arr, i, j, m, n); } } } System.out.println(sum); } } private static void Tozero(int[][] arr, int i, int j, int m, int n) { // TODO Auto-generated method stub if(arr[i][j] == 0) { return ; } else { arr[i][j] = 0; if(i - 1 >= 0) { Tozero(arr, i - 1, j, m, n); } if(i + 1 < m) { Tozero(arr, i + 1, j, m, n); } if(j - 1 >= 0) { Tozero(arr, i, j - 1, m, n); } if(j + 1 < n) { Tozero(arr, i, j + 1, m, n); } if(i - 1 >= 0 && j - 1 >= 0) { Tozero(arr, i - 1, j - 1, m, n); } if(i + 1 < m && j - 1 >= 0) { Tozero(arr, i + 1, j - 1, m, n); } if(i - 1 >= 0 && j + 1 < n) { Tozero(arr, i - 1, j + 1, m, n); } if(i + 1 < m && j + 1 < n) { Tozero(arr, i + 1, j + 1, m, n); } } } } |
Double click to view unformatted code.