Pagini recente » Cod sursa (job #367549) | Cod sursa (job #206574) | Cod sursa (job #1307906) | Cod sursa (job #2646880) | Cod sursa (job #1623117)
#include <fstream>
#include <vector>
#define INF 0x3f3f3f3f
using namespace std;
ifstream is("royfloyd.in");
ofstream os("royfloyd.out");
using VI = vector<int>;
int n, a[101][101];
int main()
{
is >> n;
for ( int i = 1; i <= n; ++i )
for ( int j = 1; j <= n; ++j )
{
is >> a[i][j];
if ( !a[i][j] )
a[i][j] = INF;
}
for ( int k = 1; k <= n; ++k )
for ( int i = 1; i <= n; ++i )
if ( i != k && a[i][k] != INF )
for ( int j = 1; j <= n; ++j )
if ( i != j && j != k && a[k][j] != INF )
a[i][j] = min(a[i][j], a[i][k] + a[k][j]);
for ( int i = 1; i <= n; ++i )
{
for ( int j = 1; j <= n; ++j )
os << ( a[i][j] != INF ? a[i][j] : 0 ) << " ";
os << "\n";
}
is.close();
os.close();
return 0;
}