Pagini recente » Cod sursa (job #1292246) | Cod sursa (job #2950366) | Cod sursa (job #2507756) | Cod sursa (job #2235768) | Cod sursa (job #2811879)
#include <bits/stdc++.h>
#define MAXR 101
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
class Graf
{
int NrNoduri;
public:
Graf(int NrNoduri);
void RoyFloyd(int G[MAXR][MAXR]);
};
Graf::Graf(int NrNoduri)
{
this->NrNoduri = NrNoduri;
}
void Graf :: RoyFloyd(int G[MAXR][MAXR])
{
for(int k = 1; k <= NrNoduri; k++)
for(int i = 1; i <= NrNoduri; i++)
for(int j = 1; j <= NrNoduri; j++)
if ((G[i][j] > G[i][k] + G[k][j] || !G[i][j]) && i != j && G[i][k] && G[k][j])
G[i][j] = G[i][k] + G[k][j];
}
int main()
{
int N;
in>>N;
Graf g(N);
int G[MAXR][MAXR];
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++)
in >> G[i][j];
g.RoyFloyd(G);
for(int i = 1; i <= N; i++)
{
for(int j = 1; j <= N; j++)
out << G[i][j] << " ";
out<<"\n";
}
return 0;
}