Pagini recente » Cod sursa (job #1923386) | Cod sursa (job #2262038) | Cod sursa (job #2179348) | Cod sursa (job #1670109) | Cod sursa (job #1852754)
#include <fstream>
#define INF 500000
#define LMAX 105
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
void citire();
void royfloyd();
void afisare();
int C[LMAX][LMAX], n;
int main(){
citire();
royfloyd();
afisare();
fin.close();
fout.close();
return 0;
}
void citire(){
int i, j;
fin >> n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++){
fin >> C[i][j];
if(i != j && C[i][j]==0)
C[i][j] = INF;
}
}
void royfloyd(){
int k, x, y;
for(k=1; k<=n; k++)
for(x=1; x<=n; x++)
for(y=1; y<=n; y++){
if(C[x][y] > C[x][k] + C[k][y]){
C[x][y] = C[x][k] + C[k][y];
}
}
}
void afisare(){
int i, j;
for(i=1; i<=n; i++){
for(j=1; j<=n; j++){
if(C[i][j] == INF)
fout << "0 ";
else
fout << C[i][j] << ' ';
}
fout << '\n';
}
}