Cod sursa(job #1431136)

Utilizator Menabil_Ailin_325CCAilin Menabil Menabil_Ailin_325CC Data 9 mai 2015 00:35:04
Problema Parcurgere DFS - componente conexe Scor 50
Compilator java Status done
Runda Arhiva educationala Marime 1.37 kb
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

public class Main {
	public static int nodes;
	public static int[][] adj;
	public static int[] visited;
	public static int count = 0;
	
	public static void doDFS(int n){		
		for(int i = 0; i < nodes; i ++){
			if(visited[i] == 0 && adj[n][i] == 1){
	//			System.out.println(i);
				visited[i] = 1;	
				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 int[nodes][];
		for(int i = 0; i< nodes; i++){
			adj[i] = new int[nodes];
		}
		for(int i =0 ; i < nodes; i++)
			for(int j = 0; j < nodes; j++)
				adj[i][j] = 0;
		
		
		while(s.hasNext()){
			int a = s.nextInt();
			int b = s.nextInt();
			adj[a-1][b-1] = 1;	
			adj[b-1][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();
	}
}