Cod sursa(job #143979)

Utilizator vanila_CPPIonescu Victor Cristian vanila_CPP Data 26 februarie 2008 23:41:36
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.01 kb
#include <iostream>
#define MAX_N 100
#define INF  10000
#define FIN "royfloyd.in"
#define FOUT "royfloyd.out"
using namespace std;
int c[MAX_N+1][MAX_N+1];
int n;

void iofile(void){
        freopen(FIN,"rt",stdin);
        freopen(FOUT,"wt",stdout);
        scanf("%d",&n);
        for (int i=1;i<=n;i++){
                for (int j=1;j<=n;j++){
                        scanf("%d",&c[i][j]);
                        if (!c[i][j]){
                                c[i][j]=INF;
                        }
                }
                c[i][i]=0;
        }
        for (int k=1;k<=n;k++)
                for (int i=1;i<=n;i++)
                        for (int j=1;j<=n;j++){
                                c[i][j]=min(c[i][j],c[i][k]+c[k][j]);
                        }
        for (int i=1;i<=n;i++){
                for (int j=1;j<n;j++)printf("%d ",c[i][j]);
                printf("%d\n",c[i][n]);
        }
        fclose(stdin);
}

int main(void){
        iofile();
        return 0;
}