Cod sursa(job #411669)

Utilizator dead_knightTitei Paul Adrian dead_knight Data 5 martie 2010 02:04:46
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.69 kb
#include<vector>
#include<cstdio>
#include<fstream>
#define MAX 104
#define INFINIT 100000000
using namespace std;

int a[MAX][MAX],n;

int main()
{
    ifstream fin("royfloyd.in");
    freopen("royfloyd.out","w",stdout);
    fin>>n;
    int i,j;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
            fin>>a[i][j];
    for(int k=1;k<=n;k++)
        for(i=1;i<=n;i++)
            for(j=1;j<=n;j++)
                if(a[i][k] && a[k][j] && i!=j && (a[i][j]==0 || a[i][j]>a[i][k]+a[k][j]))
                    a[i][j]=a[i][k]+a[k][j];
    for(i=1;i<=n;i++)
    {
        for(j=1;j<=n;j++)
            printf("%d ",a[i][j]);
        printf("\n");
    }
    return 0;
}