Pagini recente » Cod sursa (job #3169205) | Cod sursa (job #1873439) | Cod sursa (job #79981) | Cod sursa (job #2129399) | Cod sursa (job #1450649)
/**
*N <= 100
*M ponderilor
*
**/
#include <stdio.h>
int dist[101][101],N,i,j,k;
int min(int a, int b)
{
if(a > b) return b;
else return a;
}
void show()
{
freopen("royfloyd.out","w",stdout);
for(i = 1; i <= N; i++)
{
for(j = 1; j <= N; j++)
{
printf("%d ",dist[i][j]);
}
printf("\n");
}
fclose(stdout);
}
void read()
{
freopen("royfloyd.in","r",stdin);
scanf("%d",&N);
for(i = 1; i <= N; i++)
{
for(j = 1; j <= N; j++)
{
scanf("%d",&dist[i][j]);
}
}
fclose(stdin);
}
void rf()
{
for(k = 1; k <= N;k++)
{
for(i = 1; i <= N;i++)
{
for(j = 1; j <= N;j++)
{
if(i != j && i != k && j != k )
{
if(!dist[i][j])
dist[i][j] = dist[i][k] + dist[k][j];
else
dist[i][j] = min(dist[i][j], dist[i][k] + dist[k][j]);
}
}
}
}
}
int main()
{
read();
rf();
show();
return 0;
}