Cod sursa(job #837977)

Utilizator RoswenRus Alexandru Roswen Data 18 decembrie 2012 21:22:28
Problema Floyd-Warshall/Roy-Floyd Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.63 kb
#include<stdio.h>
#include<vector>
using namespace std;
int n,x;
vector <int> a[105];
int main()
{
	freopen("royfloyd.in","r", stdin);
	freopen("royfloyd.out","w", stdout);
	
	scanf("%d", &n);
	for(int i=0; i<n;i++)
		for(int j=0; j<n;j++)
		{
			scanf("%d ", &x);
			if(x)
				a[i].push_back(x);
			else 
				a[i].push_back(1<<30);
		}
		
	
	for(int k=0; k<n ;k++)
		for(int i=0; i<n; i++)
			for(int j=0; j<n; j++)
				if(a[i][j] > a[i][k] + a[k][j])
					a[i][j] = a[i][k] + a[k][j];
			
	
	for(int i=0; i<n; i++)
	{
		for(int j=0; j<n;j++)
			printf("%d ", a[i][j]);
		printf("\n");
	}
				
	return 0;		
}