Cod sursa(job #1373699)

Utilizator httpsLup Vasile https Data 4 martie 2015 20:11:21
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.77 kb
#include <fstream>
#include <vector>

using namespace std;

ifstream f("royfloyd.in");
ofstream g("royfloyd.out");

vector< vector<int> > a;
int n,i,j,k;

int main()
    {
    f>>n;
    a.resize(n+1);
    for(i=1; i<=n; ++i)
        {
        a[i].resize(n+1);
        for(j=1; j<=n; ++j) f>>a[i][j];
        }
    for(k=1; k<=n; ++k)
        for(i=1; i<=n; ++i)
            {
            if(i==k) continue;
            for(j=1; j<=n; ++j)
                {
                if(j==i || j==k) continue;
                if(a[i][k] && a[k][j]) a[i][j]=a[i][j] ? min(a[i][j],a[i][k]+a[k][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';
    }
    return 0;
    }