Pagini recente » Cod sursa (job #1307904) | Cod sursa (job #3132231) | Cod sursa (job #822983) | Cod sursa (job #1682560) | Cod sursa (job #875686)
Cod sursa(job #875686)
#include <stdio.h>
const int oo = (1<<30)-1;
int main ()
{
FILE *f=fopen("royfloyd.in", "rt"), *g=fopen("royfloyd.out", "wt");
int noduri, v[101][101];
int i,j,k;
fscanf(f, "%i ", &noduri);
for(i=1;i<=noduri;i++)
for(j=1;j<=noduri;j++)
{
int x;
fscanf(f, "%i", &x);
if(x==0)
v[i][j]=oo;
else
v[i][j]=x;
}
for(k=1;k<=noduri;k++)
for(i=1;i<=noduri;i++)
for(j=1;j<=noduri;j++)
if(v[i][j]!=oo && v[j][k]!=oo && v[i][j]+v[j][k] < v[i][k] && i!=k)
v[i][k]=v[j][k]+v[i][j];
for(i=1;i<=noduri;i++)
{
for(j=1;j<=noduri;j++)
fprintf(g, "%i ", v[i][j] != oo ? v[i][j] : 0);
fprintf(g, "\n");
}
return 0;
}