Pagini recente » Cod sursa (job #1459900) | Cod sursa (job #1123372) | Cod sursa (job #1685634) | Cod sursa (job #3170153) | Cod sursa (job #2813083)
#include <bits/stdc++.h>
#include<fstream>
#include<vector>
#include<map>
#include<queue>
int n, m, a, b, c;
class graf{
public:
int mat[101][101];
void solve_royfloyd();
void royfloyd();
void afisare_mat(std::ostream &fg);
};
void graf::afisare_mat(std::ostream& fg) {
for(auto i=0; i<n; i++){
for(auto j=0 ; j<n; j++){
fg<<mat[i][j]<<" ";
}
fg<<"\n";
}
}
void graf::royfloyd(){
for(int i=0 ; i<n; i++)
for(int j=0 ; j<n; j++)
for(int k=0 ; k<n; k++)
if(mat[j][i] && mat[i][k] && (mat[j][k] > mat[j][i] + mat[i][k] || !mat[j][k]) && j!=k)
mat[j][k] = mat[j][i] + mat[i][k];
}
void graf::solve_royfloyd() {
std::ifstream f("royfloyd.in");
std::ofstream fg("royfloyd.out");
f>>n;
for( int i=0 ; i<n ; i++){
for( int j=0 ; j<n ; j++){
f>>a;
mat[i][j] = a;
}
}
royfloyd();
afisare_mat( fg);
}
int main() {
graf g;
g.solve_royfloyd();
return 0;
}