Cod sursa(job #346208)

Utilizator freak93Adrian Budau freak93 Data 7 septembrie 2009 10:48:37
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<fstream>

using namespace std;

const char iname[]="royfloyd.in";
const char oname[]="royfloyd.out";
const int maxn=105;

ifstream f(iname);
ofstream g(oname);

int a[maxn][maxn],i,j,k,n;

int main()
{
    f>>n;

    for(i=1;i<=n;++i)
        for(j=1;j<=n;++j)
            f>>a[i][j];

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

    f.close();
    g.close();

    return 0;
}