File tree 1 file changed +45
-0
lines changed
1 file changed +45
-0
lines changed Original file line number Diff line number Diff line change
1
+ import java .io .*;
2
+ import java .util .*;
3
+
4
+ public class Main {
5
+
6
+ public static List <List <Integer >> list ;
7
+
8
+ public static void main (String [] args ) throws IOException {
9
+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
10
+ int N = Integer .parseInt (br .readLine ());
11
+ list = new ArrayList <>();
12
+ for (int i =0 ; i <N ; i ++) {
13
+ list .add (new ArrayList <>());
14
+ }
15
+ for (int i =0 ; i <N ; i ++) {
16
+ StringTokenizer st = new StringTokenizer (br .readLine ());
17
+ for (int j =0 ; j <N ; j ++) {
18
+ int edge = Integer .parseInt (st .nextToken ());
19
+ if (edge == 1 ) {
20
+ list .get (i ).add (j );
21
+ }
22
+ }
23
+ }
24
+ StringBuffer sb = new StringBuffer ();
25
+ for (int i =0 ; i <N ; i ++) {
26
+ int [] visited = new int [N ];
27
+ dfs (i , visited );
28
+ for (int j =0 ; j <N ; j ++) {
29
+ sb .append (visited [j ]).append (' ' );
30
+ }
31
+ sb .append ('\n' );
32
+ }
33
+ System .out .println (sb );
34
+ }
35
+
36
+ public static void dfs (int n , int [] visited ) {
37
+ List <Integer > edge = list .get (n );
38
+ for (int i =0 ; i <edge .size (); i ++) {
39
+ if (visited [edge .get (i )] != 1 ) {
40
+ visited [edge .get (i )] = 1 ;
41
+ dfs (edge .get (i ), visited );
42
+ }
43
+ }
44
+ }
45
+ }
You can’t perform that action at this time.
0 commit comments