Pagini recente » Istoria paginii runda/23dezile_6/clasament | Cod sursa (job #1852139) | Istoria paginii runda/eusebiu_oji_2007_cls9 | Istoria paginii runda/lista2/clasament | Cod sursa (job #1908650)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int M[101][101];
short n;
void adaugareElemente()
{
fin >> n;
for(short i = 1; i <= n; i++)
for(short j = 1; j <= n; fin >> M[i][j++]);
}
void RoyFloyd()
{
for(short k = 1; k <= n; k++)
for(short i = 1; i <= n; i++)
for(short j = 1; j <= n; j++)
if(!M[i][k] != 0 && M[k][j] != 0 &&(M[i][j] > M[i][k] + M[k][j] || !M[i][j] && i != j))
M[i][j] = M[i][k] + M[k][j];
}
void Afisare()
{
for(short i = 1; i <= n; fout << '\n', i++)
for(short j = 1; j <= n; fout << M[i][j++] << " ");
}
int main()
{
adaugareElemente();
RoyFloyd();
Afisare();
return 0;
}