Pagini recente » Cod sursa (job #581196) | Cod sursa (job #1961570) | Cod sursa (job #961568) | Cod sursa (job #2634979) | Cod sursa (job #1336673)
#include<fstream>
#include<algorithm>
using namespace std;
int main()
{
ifstream in_file("royfloyd.in");
int **shortest_paths, vertex_number;
in_file >> vertex_number;
shortest_paths = new int*[vertex_number];
for (short i = 0; i < vertex_number; ++i)
{
shortest_paths[i] = new int[vertex_number];
for (short j = 0; j < vertex_number; ++j)
in_file >> shortest_paths[i][j];
}
in_file.close();
for (short k = 0; k < vertex_number; ++k)
for (short i = 0; i < vertex_number; ++i)
for (short j = 0; j < vertex_number; ++j)
if (shortest_paths[i][k] && shortest_paths[k][j])
if (shortest_paths[i][j])
shortest_paths[i][j] = min(shortest_paths[i][j], shortest_paths[i][k] + shortest_paths[k][j]);
else
if (i != j)
shortest_paths[i][j] = shortest_paths[i][k] + shortest_paths[k][j];
ofstream out_file("royfloyd.out");
for (int i = 0; i < vertex_number; ++i)
{
for (int j = 0; j < vertex_number; ++j)
out_file << shortest_paths[i][j] << ' ';
out_file << '\n';
}
for (short i = 0; i < vertex_number; ++i)
delete[] shortest_paths[i];
delete[] shortest_paths;
return 0;
}