1+ import java .io .BufferedReader ;
2+ import java .io .IOException ;
3+ import java .io .InputStreamReader ;
4+ import java .util .ArrayList ;
5+ import java .util .List ;
6+ import java .util .StringTokenizer ;
7+
8+ public class Main {
9+ public static void main (String [] args ) throws IOException {
10+
11+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
12+ StringTokenizer st = new StringTokenizer (br .readLine ());
13+ int n = Integer .parseInt (st .nextToken ());
14+ ArrayList <Integer >[] MAP = new ArrayList [n ];
15+ int [][] vistied = new int [n ][n ];
16+ for (int i = 0 ; i < n ; i ++) {
17+ MAP [i ] = new ArrayList <>();
18+ }
19+
20+
21+ for (int i = 0 ; i < n ; i ++) {
22+ st = new StringTokenizer (br .readLine ());
23+
24+ String input = st .nextToken ();
25+ for (int j = 0 ; j < input .length (); j ++) {
26+ MAP [i ].add (Integer .parseInt (String .valueOf (input .charAt (j ))));
27+ }
28+ }
29+ int MapCnt =0 ;
30+ for (int i =0 ;i <n ;i ++){
31+ for (int j =0 ; j <n ;j ++){
32+ if (MAP [i ].get (j )==1 ){
33+ if (vistied [i ][j ]==0 ){
34+ vistied [i ][j ]=1 ;
35+ int count =Find (MAP ,vistied ,i ,j ,n ,1 );
36+ MapCnt +=1 ;
37+ System .out .println (count );
38+ }
39+
40+ }
41+ }
42+ }
43+
44+ }
45+
46+ public static int Find (ArrayList <Integer >[] MAP ,int [][] vistied , int i , int j , int n , int count ) {
47+ int [] dc ={0 ,0 ,-1 ,1 };
48+ int [] dr ={1 ,-1 ,0 ,0 };
49+ for (int k =0 ;k <4 ;k ++){
50+ int nc =i +dc [k ];
51+ int nr =j +dr [k ];
52+ if ((0 <=nc &&nc <n )&&(0 <=nr &&nr <n )){
53+ if (MAP [nc ].get (nr )==1 ){
54+ if (vistied [nc ][nr ]==0 ){
55+ vistied [nc ][nr ]=1 ;
56+ count +=1 ;
57+ Find (MAP ,vistied ,nc ,nr ,n ,count );
58+ vistied [nc ][nr ]=0 ;
59+ }
60+
61+ }
62+ }
63+
64+ }
65+ return count ;
66+
67+ }
68+ }
0 commit comments