Pagini recente » Istoria paginii runda/prolotomiada1/clasament | Cod sursa (job #1185670) | Cod sursa (job #2899983) | Cod sursa (job #1942030) | Cod sursa (job #790881)
Cod sursa(job #790881)
#include<stdio.h>
#define Nmax 110
#define MIN(x,y) (x<=y?x:y)
int N,A[Nmax][Nmax],path[Nmax][Nmax],i,j;
int edgeCost(int i,int j)
{
return A[i][j];
}
void RoyFloyd()
{
int i,j,k;
for(k=0;k<N;k++)
for(i=0;i<N;i++)
for(j=0;j<N;j++)
path[i][j]=MIN(path[i][j],path[i][k]+path[k][j]);
}
int main()
{
freopen("royfloyd.in","r",stdin);
freopen("royfloyd.out","w",stdout);
scanf("%d",&N);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
scanf("%d",&A[i][j]);
for(i=0;i<N;i++)
for(j=0;j<N;j++)
path[i][j]=edgeCost(i,j);
RoyFloyd();
for(i=0;i<N;i++)
{
for(j=0;j<N;j++)
printf("%d ",path[i][j]);
printf("\n");
}
return 0;
}