Pagini recente » Cod sursa (job #1086828) | Cod sursa (job #2307385) | Cod sursa (job #1305615) | Cod sursa (job #299426) | Cod sursa (job #2964324)
#include <iostream>
#include <cstdio>
using namespace std;
FILE *fin=fopen("royfloyd.in", "r");
FILE *fout=fopen("royfloyd.out", "w");
int mat[105][105];
int drumMinim[105][105];
int main()
{
int n;
fscanf(fin, "%d", &n);
for (int i=1; i<=n; i++) {
for (int j=1; j<=n; j++) {
fscanf(fin, "%d", &mat[i][j]);
drumMinim[i][j]=mat[i][j];
}
}
for (int i=1; i<=n; i++) {
for (int j=1; j<=n; j++) {
///drumul de la i la j
for (int k=1; k<=n; k++) {
///vedem daca drumul minim de i-k-j < dMin[i][j]
if (mat[i][k]+mat[k][j]<mat[i][j]) {
mat[i][j]=mat[i][k]+mat[k][j];
}
}
}
}
for (int i=1; i<=n; i++) {
for (int j=1; j<=n; j++) {
fprintf(fout, "%d ", mat[i][j]);
}
fprintf(fout, "\n");
}
return 0;
}