Cod sursa(job #2221274)

Utilizator ctlin04UAIC.VlasCatalin ctlin04 Data 13 iulie 2018 15:49:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.66 kb
#include<fstream>
#include<cstring>
using namespace std;

int n, d[105][105];

int main(void) {
	ifstream cin("royfloyd.in");
	ofstream cout("royfloyd.out");
	
	cin>>n;
	
	for (int i=1; i<=n; ++i)
	 for (int j=1; j<=n; ++j)
	  cin>>d[i][j];
	
	bool ok=1;
	
	while (ok) {
	ok=0;
	for (int i=1; i<=n; ++i)
	 for (int k=1; k<=n; ++k)
	  if (i!=k)
	  for (int j=1; j<=n; ++j)
	   if (j!=i && j!=k) {
	   	
	     if (d[i][k]!=0 && d[k][j]!=0 && (d[i][k]+d[k][j]<d[i][j] || d[i][j]==0) ) { d[i][j]=d[i][k]+d[k][j]; ok=1; }
	  	
	   }
	}
	   
	for (int i=1; i<=n; ++i, cout<<"\n")
	 for (int j=1; j<=n; ++j)
	  cout<<d[i][j]<<" ";
	return 0;
}