Pagini recente » Cod sursa (job #599551) | Cod sursa (job #2126911) | Cod sursa (job #1422880) | tema | Cod sursa (job #2814785)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream o("royfloyd.out");
class RoyFloydG
{
int size;
public:
int **matrix;
RoyFloydG(int n)
{
size = n;
matrix = new int *[size];
for (int i = 0; i < size; i++)
matrix[i] = new int[size];
}
void RoyFloyd()
{
int i, j, k;
for (k = 0; k < size; k++)
for (i = 0; i < size; i++)
for (j = 0; j < size; j++)
if (matrix[i][k] && matrix[k][j] && (matrix[i][j] > matrix[i][k] + matrix[k][j] || !matrix[i][j]) && i != j)
matrix[i][j] = matrix[i][k] + matrix[k][j];
}
~RoyFloydG()
{
for (int i = 0; i < size; i++)
delete[] matrix[i];
delete[] matrix;
}
};
int main()
{
int N;
f >> N;
RoyFloydG g(N);
for (int i = 0; i < N; i++)
for (int j = 0; j < N; j++)
f >> g.matrix[i][j];
g.RoyFloyd();
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
o << g.matrix[i][j] << " ";
o << endl;
}
return 0;
}