Cod sursa(job #997486)

Utilizator Adrian1997Radulescu Adrian Adrian1997 Data 14 septembrie 2013 11:53:32
Problema Floyd-Warshall/Roy-Floyd Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <fstream>
#define INF 10000000
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int a[101][101],n;

int main(void){
    register int i,j,k;

    f>>n;
    for(i=1;i<=n;i++)
        for(j=1;j<=n;j++){
            f>>a[i][j];
            if(!a[i][j])
                a[i][j]=INF;
        }

    for(i=1;i<=n;i++){
        for(j=1;j<=n;j++){
                for(k=1;k<=n;k++){
                    if(i!=j && k!=j && k!=i && 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++){
            g<<(a[i][j]==INF?0:a[i][j])<<" ";
        }
        g<<"\n";
    }
    return 0;
}