Pagini recente » Cod sursa (job #2272806) | Cod sursa (job #1643963) | Cod sursa (job #2899563) | Cod sursa (job #1778532) | Cod sursa (job #931812)
Cod sursa(job #931812)
#include "iostream"
#include "cstdlib"
#include "fstream"
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
void Read(int **&ponderi,int &nr_nod)
{
in >> nr_nod;
ponderi = (int**)calloc(nr_nod+1,sizeof(int*));
for (int i = 0; i < nr_nod+1; ++i)
ponderi[i] = (int*)calloc(nr_nod+1,sizeof(int));
for (int i = 1; i < nr_nod+1; ++i)
for (int j = 1; j < nr_nod+1; ++j)
in >> ponderi[i][j];
}
void RoyFloyd(int **ponderi,int nr_nod)
{
for (int i = 1; i < nr_nod+1; ++i)
for (int j = 1; j < nr_nod+1; ++j)
for (int k = 1; k < nr_nod+1; ++k)
if (ponderi[i][j] > ponderi[i][k] + ponderi[k][j] && i!=j)
ponderi[i][j] = ponderi[i][k] + ponderi[k][j];
}
void Print(int **costuri,int nr_nod)
{
for (int i = 1; i < nr_nod+1; ++i) {
for (int j = 1; j < nr_nod+1; ++j)
out << costuri[i][j] << " ";
out << "\n";
}
}
int main(int argc, char const *argv[])
{
int **ponderi;
int nr_nod;
Read(ponderi,nr_nod);
RoyFloyd(ponderi,nr_nod);
Print(ponderi,nr_nod);
return 0;
}