Cod sursa(job #1853283)

Utilizator vladradu97150Vlad Radu vladradu97150 Data 21 ianuarie 2017 16:10:38
Problema Floyd-Warshall/Roy-Floyd Scor 30
Compilator java Status done
Runda Arhiva educationala Marime 1.07 kb
import java.io.BufferedWriter;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.Scanner;

class Main {

	public static void main(String[] args) throws FileNotFoundException, IOException {
		try(FileReader freader = new FileReader("royfloyd.in");
			Scanner scanner = new Scanner(freader);
			FileWriter fwriter = new FileWriter("royfloyd.out");
			BufferedWriter bwriter = new BufferedWriter(fwriter)) {
			
			int N = scanner.nextInt();
			int adj[][] = new int[N][N];
			for(int i=0;i<N;i++) {
				for(int j=0;j<N;j++) {
						adj[i][j] = scanner.nextInt();
				}
			}
			
			for(int k=0;k<N;k++) {
				for(int i=0;i<N;i++) {
					for(int j=0;j<N;j++) {
						if(adj[i][k] !=0 && adj[k][j] != 0 && i!=j &&(adj[i][j] > adj[i][k] + adj[k][j] || adj[i][j] == 0)){
							adj[i][j] = adj[i][k] + adj[k][j];
						}
					}
				}
			}
			
			for(int i=0;i<N;i++) {
				for(int j=0;j<N;j++) {
					bwriter.write(adj[i][j] + " ");
				}
				bwriter.newLine();
			}
		}
	}

}