Pagini recente » Cod sursa (job #408668) | Cod sursa (job #2701487) | Cod sursa (job #2517876) | Cod sursa (job #674306) | Cod sursa (job #2586211)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
const int Nmax = 105;
const int oo = (1 << 30);
int N, M, i, j, m[Nmax][Nmax];
void initializare()
{
for (i = 1; i <= N; i++)
for (j = 1; j <= N; j++)
{
m[i][j] = oo;
m[i][i] = 0;
}
}
void afisare()
{
for (i = 1; i <= N; i++)
{ if(i!=1)
g << '\n';
for (j = 1; j <= N; j++)
{
if (m[i][j] != oo)
g << m[i][j]<<" ";
else g << -1<<" ";
}
}
}
void roy_floyd()
{
int k;
for (k = 1; k <= N; k++)
for (i = 1; i <= N; i++)
for (j = 1; j <= N; j++)
if(m[i][k]!=oo && m[k][i]!=oo)
if (m[i][j] > m[i][k] + m[k][j])
m[i][j] = m[i][k] + m[k][j];
}
int main()
{
f >> N;
initializare();
for (i = 1; i <= N; i++)
for (j = 1; j <= N; j++)
f >> m[i][j];
roy_floyd();
afisare();
}