Cod sursa(job #1196609)
Utilizator | Vintur Cristian Cristian1997 | Data | 8 iunie 2014 15:13:14 |
---|---|---|---|
Problema | Floyd-Warshall/Roy-Floyd | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.69 kb |
using namespace std;
#include <fstream>
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int Nmax = 100;
int c[Nmax+1][Nmax+1];
int main()
{
int i, j, k, n;
fin>>n;
for(i=1; i<=n; ++i)
for(j=1; j<=n; ++j)
fin>>c[i][j];
for(k=1; k<=n; ++k)
for(i=1; i<=n; ++i)
if(c[i][k])
for(j=1; j<=n; ++j)
if(c[k][j] && i!=j)
if(c[i][j]>c[i][k]+c[k][j] || c[i][j]==0)
c[i][j] = c[i][k]+c[k][j];
for(i=1; i<=n; ++i)
{
for(j=1; j<=n; ++j)
fout<<c[i][j]<<' ';
fout<<'\n';
}
return 0;
}