Pagini recente » Cod sursa (job #2391547) | Monitorul de evaluare | Monitorul de evaluare | Cod sursa (job #754848) | Cod sursa (job #3303753)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
fstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
vector<vector<int>> ma;
void citire(){
fin >> n;
ma.resize(n);
for(auto& row: ma){
row.resize(n);
}
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
fin >> ma[i][j];
}
}
}
void royfloyd(){
for(int k = 0; k < n; k++){
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
if(i != j && ma[i][k] != 0 && ma[k][i] != 0){
if(ma[i][j] > ma[i][k] + ma[k][j])
ma[i][j] = ma[i][k] + ma[k][j];
}
}
}
}
}
int main(){
citire();
royfloyd();
for(int i = 0; i < n; i++){
for(int j = 0; j < n; j++){
fout << ma[i][j] << " ";
}
fout << '\n';
}
return 0;
}