Cod sursa(job #1853287)

Utilizator vladradu97150Vlad Radu vladradu97150 Data 21 ianuarie 2017 16:12:53
Problema Floyd-Warshall/Roy-Floyd Scor 30
Compilator java Status done
Runda Arhiva educationala Marime 1.1 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)) {
			
			byte N = scanner.nextByte();
			short adj[][] = new short[N][N];
			for(byte i=0;i<N;i++) {
				for(byte j=0;j<N;j++) {
						adj[i][j] = scanner.nextShort();
				}
			}
			
			for(byte k=0;k<N;k++) {
				for(byte i=0;i<N;i++) {
					for(byte 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] = (short) (adj[i][k] + adj[k][j]);
						}
					}
				}
			}
			
			for(byte i=0;i<N;i++) {
				for(byte j=0;j<N;j++) {
					bwriter.write(adj[i][j] + " ");
				}
				bwriter.newLine();
			}
		}
	}

}