Cod sursa(job #1427234)

Utilizator DrumeaVDrumea Vasile DrumeaV Data 1 mai 2015 19:11:29
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.73 kb
#include <bits/stdc++.h>
using namespace std;

int n,t[110][110];

ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");

void ScanData()
{
    int i,j;
    fin >> n;

     for (i=1;i<=n;i++)
       for (j=1;j<=n;j++)
            fin >> t[i][j];
}

void roy_floyd()
{
    int i,j,k;

  for (k=1;k<=n;k++)
    for (i=1;i<=n;i++)
       for (j=1;j<=n;j++)
        if (t[i][k] && t[k][j] &&(t[i][j]>t[i][k]+t[k][j] || !t[i][j])&& i!=j)
            t[i][j]=t[i][k]+t[k][j];
}

void PrintData()
{
    int i,j;

    for (i=1;i<=n;i++)
    {
       for (j=1;j<=n;j++)fout << t[i][j] << " ";
       fout << "\n";
    }
}

int main()
{
    ScanData();
    roy_floyd();
    PrintData();
    return 0;
}