Cod sursa(job #1089939)

Utilizator kiralalaChitoraga Dumitru kiralala Data 22 ianuarie 2014 08:16:50
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.67 kb
#include <fstream>
#define NMAX 105
#define INF 999999999

using namespace std;

FILE* f=freopen("royfloyd.in","r",stdin);
FILE* o=freopen("royfloyd.out","w",stdout);

int n;
int dr[NMAX][NMAX];


int main()
{
    scanf("%d",&n);
    for(int i=0;i<n;++i)
    for(int j=0;j<n;++j)
    {
        scanf("%d",&dr[i][j]);
        if(dr[i][j]==0&&i!=j) dr[i][j]=INF;
    }

    for(int k=0;k<n;++k)
    for(int i=0;i<n;++i)
    for(int j=0;j<n;++j)
        if(dr[i][j]>dr[i][k]+dr[k][j])
            dr[i][j]=dr[i][k]+dr[k][j];

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

    return 0;
}