Pagini recente » Cod sursa (job #3139444) | Cod sursa (job #3203098) | Cod sursa (job #2859877) | Cod sursa (job #2193457) | Cod sursa (job #1234805)
#include <fstream>
using namespace std;
ifstream is("royfloyd.in");
ofstream os("royfloyd.out");
int N;
short x[101][101];
void Input();
void RoyFloyd();
void Output();
int main()
{
Input();
RoyFloyd();
Output();
is.close();
os.close();
}
void Input()
{
is >> N;
for ( int i = 1; i <= N; ++i )
for ( int j = 1; j <= N; ++j )
is >> x[i][j];
}
void RoyFloyd()
{
for ( int k = N; k >= 1; --k )
for ( int i = 1; i <= N; ++i )
for ( int j = 1; j <= N; ++j )
if ( (x[i][k] + x[k][j] < x[i][j] || !x[i][j]) && i != j && x[i][k] && x[k][j] )
x[i][j] = x[i][k] + x[k][j];
}
void Output()
{
for ( int i = 1; i <= N; ++i )
{
for ( int j = 1; j <= N; ++j )
os << x[i][j] << " ";
os << '\n';
}
}