Pagini recente » Istoria paginii utilizator/kissreka | Cod sursa (job #217198) | Cod sursa (job #2564953) | Cod sursa (job #2133829) | Cod sursa (job #2192535)
#include <iostream>
#include <bits/stdc++.h>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int a[103][103], i, j, k, n;
void rd()
{
f>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
f>>a[i][j];
if(!a[i][j])
a[i][j]=2000;
}
}
void rf()
{
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(i!=j&&a[i][k]&&a[j][k])
a[i][j]=min(a[i][j], a[i][k]+a[k][j]);
}
void afis()
{
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
if(a[i][j]==2000)g<<"0 ";
else g<<a[i][j]<<" ";
g<<'\n';
}
}
int main()
{
rd();
rf();
afis();
f.close();
g.close();
return 0;
}