Pagini recente » Cod sursa (job #3000755) | Cod sursa (job #657412) | Cod sursa (job #3298525) | Cod sursa (job #1653954) | Cod sursa (job #3295671)
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.nio.file.Files;
import java.nio.file.Paths;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = Files.newBufferedReader(Paths.get("dfs.in"));
PrintWriter writer = new PrintWriter("dfs.out");
StringTokenizer st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
int m = Integer.parseInt(st.nextToken());
ArrayList<Integer>[] connections = new ArrayList[n + 1];
for (int i = 1; i < n + 1; i++) {
connections[i] = new ArrayList<>();
}
for (int i = 0; i < m; i++) {
st = new StringTokenizer(br.readLine());
int x = Integer.parseInt(st.nextToken());
int y = Integer.parseInt(st.nextToken());
connections[x].add(y);
connections[y].add(x);
}
int counter = 0;
boolean[] visited = new boolean[n + 1];
for (int i = 1; i < n + 1; i++) {
if(visited[i]) {
continue;
}
dfs(connections, i, visited);
counter++;
}
writer.println(counter);
br.close();
writer.close();
}
static void dfs(ArrayList<Integer>[] connections, int node, boolean[] visited) {
visited[node] = true;
for(int neighbor : connections[node]) {
if(!visited[neighbor]) {
dfs(connections, neighbor, visited);
}
}
}
}