Pagini recente » Cod sursa (job #718135) | Cod sursa (job #2905251) | Cod sursa (job #2621578) | Cod sursa (job #218011) | Cod sursa (job #2814015)
#include <fstream>
#include <vector>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
vector<vector<int>> royFloyd(vector<vector<int>> &matrice, int &n) {
vector<vector<int>> distante = matrice;
for (int k = 1; k <= n; k++)
for (int i = 1; i <= n; i++)
for (int j = 1; j <= n; j++)
if (distante[i][j] > distante[i][k] + distante[k][j]) {
distante[i][j] = distante[i][k] + distante[k][j];
}
return distante;
}
int main() {
vector<vector<int>> matrice;
int n;
fin >> n;
matrice.resize(n + 1);
for (int i = 1; i <= n; i++) {
matrice[i].resize(n + 1);
for (int j = 1; j <= n; j++) {
int cost;
fin >> cost;
matrice[i][j] = cost;
}
}
vector<vector<int>> distante;
distante = royFloyd(matrice, n);
for (int i = 1; i < distante.size(); i++) {
for (int j = 1; j < distante.size(); j++)
fout << distante[i][j] << " ";
fout << "\n";
}
return 0;
}