Cod sursa(job #1465122)

Utilizator dimavascan94VascanDumitru dimavascan94 Data 26 iulie 2015 15:34:25
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <iostream>
using namespace std;

int N,i,j,length[260][260],nmbOfStreets[260][260],k;

int main()
{
	freopen("rf.in","r",stdin);
	freopen("rf.out","w",stdout);
	
	cin>>N;
	
	for (i=0;i<N;++i)
		for (j=0;j<N;++j)
		{
			cin>>length[i][j];
			if (length[i][j]>0) nmbOfStreets[i][j]=1;
			else	nmbOfStreets[i][j]=0;
		}
			
	for (k=0;k<N;++k)
		for (i=0;i<N;++i)
			for (j=0;j<N;++j)	
				if (length[i][k]>0 && length[k][j]>0 && (length[i][j]==0 || length[i][j]>length[i][k]+length[k][j]) && i!=j)
				{
					length[i][j]=length[i][k]+length[k][j];
					nmbOfStreets[i][j]=nmbOfStreets[i][k]+nmbOfStreets[k][j];
				}
					
	for (i=0;i<N;++i)
	{
		for (j=0;j<N;++j)
			cout<<length[i][j]<<" ";
		cout<<endl;		
	}
	
	for (i=0;i<N;++i)
	{
		for (j=0;j<N;++j)
			cout<<nmbOfStreets[i][j]<<" ";
		cout<<endl;		
	}
}