Cod sursa(job #404369)

Utilizator iotaroxiota roxana iotarox Data 26 februarie 2010 08:22:22
Problema Floyd-Warshall/Roy-Floyd Scor 40
Compilator cpp Status done
Runda Arhiva educationala Marime 0.53 kb
#include<iostream.h>
#include<fstream.h>
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int a[100][100],i,j,N,x;
void citire(){
	f>>N;
	for(i=1;i<=N;i++)
		for(j=1;j<=N;j++){f>>x;
		a[i][j]=x;}
}
void roy_floyd(){
int i,j,k;
for(k=1;k<=N;k++)
  for(i=1;i<=N;i++)
    for(j=1;j<=N;j++)
		if(a[i][k]!=0&&a[k][j]!=0)
			if(i!=k&&j!=k&&a[i][j]>a[i][k]+a[k][j])
				a[i][j]=a[i][k]+a[k][j];
}
						
	int main(){
citire();
roy_floyd();
for(i=1;i<=N;i++){
	for(j=1;j<=N;j++)
		g<<a[i][j]<<" ";
	g<<endl;}
	return 0;}