Pagini recente » Cod sursa (job #1912469) | Cod sursa (job #1629464) | Cod sursa (job #926439) | Cod sursa (job #1543359) | Cod sursa (job #2669192)
#include <bits/stdc++.h>
using namespace std;
ifstream input("royfloyd.in");
ofstream output("royfloyd.out");
// #define input cin
// #define output cout
int main()
{
int n, m[103][103];
input >> n;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
input >> m[i][j]; // Reprezentam graful prin matricea de costuri
for (int aux = 1; aux <= n; aux++)
for (int i = 1; i <= n; i++)
// Pentru fiecare pereche de noduri
for (int j = 1; j <= n; j++)
// Incercam sa folosim fiecare nod ca nod intermediar
if (m[i][aux] && m[aux][j] && i != j)
// Daca avem muchii intre noduri si nodul auxiliar
if (m[i][j] == 0 || m[i][j] > m[i][aux] + m[aux][j])
// Imbunatatim costul, daca acesta este mai mic
m[i][j] = m[i][aux] + m[aux][j];
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
output << m[i][j] << " ";
output << "\n";
}
return 0;
}