Pagini recente » Cod sursa (job #1431851) | Cod sursa (job #1431493) | Cod sursa (job #1433091) | Cod sursa (job #1431350) | Cod sursa (job #1431166)
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static int nodes;
public static ArrayList<ArrayList<Integer>> adj;
public static int[] visited;
public static int count = 0;
public static void doDFS(int n){
visited[n] = 1;
for(int i = 0; i < nodes; i ++){
if(visited[i] == 0 && adj.get(n).get(i) == 1){
System.out.println(i);
doDFS(i);
}
}
}
public static void DFS(){
for(int i = 0;i < nodes; i++){
if(visited[i] == 0){
doDFS(i);
count++; }
}
}
public static void main(String[] args) throws IOException {
Scanner s = new Scanner(new FileInputStream ("dfs.in"));
nodes = s.nextInt();
int edges = s.nextInt();
visited = new int[nodes];
adj = new ArrayList<ArrayList<Integer>>();
for (int i = 0; i < nodes; ++i) {
ArrayList<Integer> row = new ArrayList<Integer>();
for(int j = 0; j < nodes; j++)
row.add(j, 0);
adj.add(row);
}
while(s.hasNext()){
int a = s.nextInt();
int b = s.nextInt();
adj.get(a-1).add(b-1,1);
adj.get(b-1).add(a-1,1);
}
s.close();
// for(int i =0 ; i < nodes; i++){
// for(int j = 0; j < nodes; j++){
// System.out.print(adj[i][j] + " ");
// }
// System.out.println(" ");}
DFS();
FileWriter fw = new FileWriter("dfs.out");
fw.write(String.valueOf(count));
fw.close();
}
}