Pagini recente » Cod sursa (job #1134206) | Cod sursa (job #1993867) | Cod sursa (job #2075818) | Cod sursa (job #30543) | Cod sursa (job #2948302)
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#define MAXN 102
using namespace std;
int cost[MAXN][MAXN];
int minim(int a,int b){
return a<b? a : b;
}
int main(){
int n,i,j,k;
FILE *fin,*fout;
fin=fopen("royfloyd.in","r");
fout=fopen("royfloyd.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fscanf(fin,"%d",&cost[i][j]);
if(i!=j){
if(cost[i][j]==0){
cost[i][j]=-1;
}
}
}
}
for(k=1;k<=n;k++){
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
if(i!=j && cost[i][k]!=-1 && cost[k][j]!=-1){
if(cost[i][j]!=-1){
cost[i][j]=minim(cost[i][j],cost[i][k]+cost[k][j]);
}else{
cost[i][j]=cost[i][k]+cost[k][j];
}
}
}
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++){
fprintf(fout,"%d ",cost[i][j]);
}
fprintf(fout,"\n");
}
fclose(fin);
fclose(fout);
return 0;
}