Pagini recente » Borderou de evaluare (job #1941036) | Cod sursa (job #2041304) | Cod sursa (job #2952604) | Cod sursa (job #178485) | Cod sursa (job #546485)
Cod sursa(job #546485)
#include <stdio.h>
using namespace std;
#define MaxN 105
#define minim(a,b) (a<b ? a:b)
int w[MaxN][MaxN];
int n;
void citire(void)
{ FILE *fin=fopen("royfloyd.in","r");
int i,j;
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
fscanf(fin,"%d",&w[i][j]);
fclose(fin);
}
void RoyFloyd(void)
{ int i,j,k;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(w[i][k] && w[k][j] && i!=j && (w[i][j]>w[i][k]+w[k][j] || !w[i][j]))
w[i][j]=w[i][k]+w[k][j];
}
void scrie(void)
{ int i,j;
FILE *fout=fopen("royfloyd.out","w");
for(i=1;i<=n;i++)
{ for(j=1;j<=n;j++)
fprintf(fout,"%d ",w[i][j]);
fprintf(fout,"\n");
}
fclose(fout);
}
int main(void)
{ citire();
RoyFloyd();
scrie();
return 0;
}