Pagini recente » Cod sursa (job #1094667) | Cod sursa (job #3203003) | Cod sursa (job #1440521) | Cod sursa (job #2024126) | Cod sursa (job #3227340)
#include <iostream>
#include <fstream>
#include <vector>
#include <climits>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
int x;
int d[105][105]; ///d[k][i][j]- drumul de cost minim dintre nodul i si nodul j, luand in considerare k noduri
int main()
{
fin>>n;
for (int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j){
fin>>d[i][j];
if (d[i][j]==0){
d[i][j]=INT_MAX;
}
}
}
for (int k=1; k<=n; ++k){
for (int i=1; i<=n; ++i){
for (int j=1; j<=n; ++j){
if (d[i][k]!=INT_MAX && d[k][j]!=INT_MAX)
d[i][j]=min(d[i][j],d[i][k]+d[k][j]);
}
}
}
for (int i=1; i<=n; ++i){
for (int j=1; j<=n; ++j){
if (d[i][j]>=INT_MAX || i==j){
fout << 0 << ' ';
}
else {
fout << d[i][j] << ' ';
}
}
fout << '\n';
}
return 0;
}