Pagini recente » Cod sursa (job #2810147) | Cod sursa (job #471707) | Cod sursa (job #926452) | Cod sursa (job #1799822) | Cod sursa (job #1404178)
#include <fstream>
#include <algorithm>
const int MAX_N(101);
int n;
int Graph [MAX_N] [MAX_N];
int Dp [MAX_N] [MAX_N];
inline void Read (void)
{
std::ifstream input("royfloyd.in");
input >> n;
for (int i(1) ; i <= n ; ++i)
for (int j(1) ; j <= n ; ++j)
input >> Graph[i][j];
input.close();
}
inline void Print (void)
{
std::ofstream output("royfloyd.out");
for (int i(1) ; i <= n ; ++i)
{
for (int j(1); j <= n ; ++j)
output << Dp[i][j] << ' ' ;
output.put('\n');
}
output.close();
}
inline void Dynamic (void)
{
for (int i(1) ; i <= n ; ++i)
for (int j(1) ; j <= n ; ++j)
Dp[i][j] = Graph[i][j];
for (int k(1) ; k <= n ; ++k)
for (int i(1) ; i <= n ; ++i)
for (int j(1) ; j <= n ; ++j)
if (Graph[i][k] && Graph[k][j] && i != j)
Dp[i][j] = std::min(Dp[i][j],Dp[i][k] + Dp[k][j]);
}
int main (void)
{
Read();
Dynamic();
Print();
return 0;
}