Pagini recente » Cod sursa (job #142628) | Cod sursa (job #2229422) | Cod sursa (job #85195) | Cod sursa (job #3280462) | Cod sursa (job #2906924)
#include <fstream>
#define N 100
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int A[N][N], n;
int main()
{
fin >> n;
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
fin >> A[i][j];
}
for(int k=1; k<=n; k++){//minimul folosind ca punct intermediar 1..k
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
if(A[i][k] && A[k][j] && (A[i][j] > A[i][k] + A[k][j] || (!A[i][j] && i != j) ) ){
A[i][j] = A[i][k] + A[k][j];
}
}
}
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++)
fout << A[i][j] << ' ';
fout << '\n';
}
return 0;
}