Cod sursa(job #2333253)

Utilizator bvd.dorinBaba Dorin bvd.dorin Data 31 ianuarie 2019 20:03:34
Problema Floyd-Warshall/Roy-Floyd Scor 10
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.76 kb
#include <iostream>
#include <fstream>
using namespace std;
int A[100][100],N;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

void RoyFloyd(){
	for(int k=1; k<N; k++){
		for(int i=0; i<N; i++){
			for(int j=0; j<N; j++){
				if( A[i][k] &&
                    A[k][j] &&
                    i != j &&
                    (A[i][j] > A[i][k] + A[k][j] || !A[i][j]))
                    A[i][j] = A[i][k] + A[k][j];
			}
		}
	}
}

void Afisare(){
	for(int i=0; i<N; i++){
		for(int j=0; j<N; j++){
			fout<<A[i][j]<<" ";
		}
		fout<<"\n";
	}
}
int main(int argc, char** argv) {
	fin>>N;
	for(int i=0; i<N; i++){
		for(int j=0; j<N; j++){
			fin>>A[i][j];
		}
	}
	RoyFloyd();
	Afisare();
	fin.close();
	fout.close();
	return 0;
}