Cod sursa(job #1329325)

Utilizator sifushifMihaela Muraru sifushif Data 29 ianuarie 2015 13:29:45
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include<iostream>
#include<fstream>
using namespace std;

ifstream fin("royfloyd.in");
ofstream fout ("royfloyd.out");

int p[110][110];
int n;


int main() {
	fin>>n;
	for(int i=1; i<=n; i++ ){
		for(int j=1; j<=n; j++){
			fin>>p[i][j];
		}
	}
	for(int k=1; k<=n; k++){
		for(int i=1; i<=n; i++){
			for(int j=1; j<n; j++){
				if (p[i][k]!=0 && p[k][j]!=0 && (p[i][j] > p[i][k] + p[k][j] || !p[i][j]) && i != j){
					p[i][j] = p[i][k] + p[k][j];
				}
			}
		}
	}
	for(int i=1; i<=n; i++ ){
		for(int j=1; j<=n; j++){
			fout<<p[i][j]<<" ";
		}
			fout<<"\n";
	}


return 0;
}