File tree Expand file tree Collapse file tree 1 file changed +45
-0
lines changed Expand file tree Collapse file tree 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