Cod sursa(job #295228)

Utilizator ScrazyRobert Szasz Scrazy Data 3 aprilie 2009 09:06:25
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include <cstdio>
#include <cstring>
#include <algorithm> 
using namespace std;

int n;
int d[101][101];

void read()
{
    memset(d, 0x3f, sizeof(d));
    scanf("%d", &n);
    for (int i = 1; i <= n; ++i)
	for (int j = 1; j <= n; ++j)
	    scanf("%d", &d[i][j]);
}

void rf()
{
    for (int k = 1; k <= n; ++k)
	for (int i = 1; i <= n; ++i)
	    for (int j = 1; j <= n; ++j)
		d[i][j] = min(d[i][j], d[i][k] + d[k][j]); 
}

void print()
{
    for (int i = 1; i <= n; ++i)
    {
	for (int j = 1; j <= n; ++j)
	    printf("%d ", d[i][j]);
	printf("\n");
    }
}

int main()
{
    freopen("royfloyd.in","r",stdin);
    freopen("royfloyd.out","w",stdout);

    read();
    rf();
    print();

    return 0;
}