File tree Expand file tree Collapse file tree
Expand file tree Collapse file tree Original file line number Diff line number Diff line change 1+ import java .io .*;
2+ import java .util .*;
3+
4+ public class BOJ_9372 {
5+ private static List <List <Integer >> graph ;
6+ private static boolean [] visited ;
7+ private static int count ;
8+
9+ public static void main (String [] args ) throws IOException {
10+ BufferedReader bufferedReader = new BufferedReader (new InputStreamReader (System .in ));
11+ StringBuilder stringBuilder = new StringBuilder ();
12+
13+ int T = Integer .parseInt (bufferedReader .readLine ());
14+
15+ while (T > 0 ) {
16+ StringTokenizer stringTokenizer = new StringTokenizer (bufferedReader .readLine ());
17+ int N = Integer .parseInt (stringTokenizer .nextToken ());
18+ int M = Integer .parseInt (stringTokenizer .nextToken ());
19+
20+ graph = new ArrayList <>();
21+
22+ for (int i = 0 ; i <= N ; i ++) {
23+ graph .add (new ArrayList <>());
24+ }
25+ visited = new boolean [N + 1 ];
26+ count = 0 ;
27+
28+ for (int i = 0 ; i < M ; i ++) {
29+ stringTokenizer = new StringTokenizer (bufferedReader .readLine ());
30+ int a = Integer .parseInt (stringTokenizer .nextToken ());
31+ int b = Integer .parseInt (stringTokenizer .nextToken ());
32+
33+ graph .get (a ).add (b );
34+ graph .get (b ).add (a );
35+ }
36+
37+ dfs (1 );
38+
39+ stringBuilder .append (count ).append ("\n " );
40+
41+ T --;
42+ }
43+
44+ System .out .print (stringBuilder );
45+ }
46+
47+ private static void dfs (int node ) {
48+ visited [node ] = true ;
49+ for (int next : graph .get (node )) {
50+ if (!visited [next ]) {
51+ count ++;
52+ dfs (next );
53+ }
54+ }
55+ }
56+ }
You can’t perform that action at this time.
0 commit comments