Pagini recente » Cod sursa (job #813719) | Cod sursa (job #1182805) | Cod sursa (job #1180796) | Cod sursa (job #2539468) | Cod sursa (job #2565780)
#include <bits/stdc++.h>
#define MAXN 105
#define INF 2e9
#define FILENAME std::string("royfloyd")
std::ifstream input (FILENAME+".in");
std::ofstream output(FILENAME+".out");
int RF[MAXN][MAXN];
int main()
{
int N; input >> N;
for (int i=1, j; i<=N; ++i) for (j=1; j<=N; ++j)
input >> RF[i][j], RF[i][j] = ((RF[i][j] == 0 && i != j)? INF : RF[i][j]);
for (int k=1; k<=N; ++k)
for (int i=1; i<=N; ++i)
for (int j=1; j<=N; ++j)
if (RF[i][k] != INF && RF[k][j] != INF)
RF[i][j] = std::min(RF[i][j], RF[i][k] + RF[k][j]);
for (int i=1, j; i<=N; ++i, output << '\n') for (j=1; j<=N; ++j)
output << (RF[i][j] == INF ? 0 : RF[i][j]) << ' ';
return 0;
}