Cod sursa(job #1741642)

Utilizator flaviu_2001Craciun Ioan-Flaviu flaviu_2001 Data 14 august 2016 17:01:57
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator java Status done
Runda Arhiva educationala Marime 1.31 kb
import java.io.FileOutputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.PrintWriter;
import java.util.Scanner;

public class Main {

	static short[][] v = new short [105][105];
	static short n;
	
	public static void read(){
		
		try{
			Scanner sc = new Scanner(new FileReader("royfloyd.in"));
			n = sc.nextShort();
			for (int i = 0; i < n; ++i)
				for (int j = 0; j < n; ++j)
					v[i][j] = sc.nextShort();
			sc.close();
		}catch(IOException e){
			System.out.println("dunno...prolly no file");
		}
		
	}
	
	public static void royfloyd(){
		for (short k = 0; k < n; ++k)
			for (short i = 0; i < n; ++i)
				for (short j = 0 ; j < n; ++j)
					if (v[i][k] > 0 && v[k][j] > 0 && (v[i][j] > v[i][k] + v[k][j] || v[i][j] == 0) && i != j)
						v[i][j] = (short) (v[i][k] + v[k][j]);
	}
	
	public static void write(){
		
		try{
			PrintWriter fout = new PrintWriter(new FileOutputStream("royfloyd.out"));
			for (short i = 0; i < n; ++i){
				for (short j = 0; j < n; ++j)
					fout.print(v[i][j] + " ");
				fout.println();
			}
			fout.close();
		}catch(Exception ex){
			System.out.println("Had to write this shit again cuz i deleted it first time");
		}
		
	}
	
	public static void main(String[] args){
		read();
		royfloyd();
		write();
	}
	
}