Pagini recente » Cod sursa (job #2591318) | Cod sursa (job #1404592) | Cod sursa (job #446372) | Cod sursa (job #1737281) | Cod sursa (job #1510047)
#include<fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int a[101][101], b[101][101], c[101][101], n;
int const oo = 100000000;
void citire()
{
int i, j;
f>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++){
f>>a[i][j];
if(a[i][j] == 0)
a[i][j] = oo;
c[i][j] = a[i][j];
}
}
void floyd()
{
int i, j, k;
for(k=1; k<=n; k++){
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(i!=j)
c[i][j] = min(a[i][k] + a[k][j], c[i][j]);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
a[i][j] = c[i][j];
}
}
void print()
{
int i, j;
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
if(c[i][j] == oo)
c[i][j] = 0;
g<<c[i][j]<<" ";
}
g<<"\n";
}
}
int main()
{
citire();
floyd();
print();
return 0;
}