Pagini recente » Cod sursa (job #143892) | Cod sursa (job #456049) | Cod sursa (job #699531) | Cod sursa (job #1386148) | Cod sursa (job #2338331)
#include <iostream>
#include <fstream>
#include <vector>
#include <limits.h>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,m,D[101][101];
void Citire()
{ f>>n;
int x, i , j,inf=INT_MAX ;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
{f>>x;
if(x!=0)
D[i][j]=x;
else if(i!=j)
D[i][j]=inf;}
}
void Roy_Floyd()
{ int k, i , j;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if( D[i][k]!=0 && D[k][j]!=0 && D[i][j]>D[i][k]+D[k][j]&& i!=j)
D[i][j]=D[i][k]+D[k][j];
}
void Afisare()
{ int i, j;
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
if(D[i][j]!=INT_MAX)
g<<D[i][j]<<" ";
else g<<0<<" ";
g<<'\n';}
}
int main()
{
Citire();
Roy_Floyd();
Afisare();
f.close();
g.close();
return 0;
}