Pagini recente » Cod sursa (job #1705604) | Istoria paginii runda/porc_aur/clasament | Cod sursa (job #1126226) | Cod sursa (job #2204719) | Cod sursa (job #1450650)
/**
*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 (
dist[i][k]
&& dist[k][j]
&& (dist[i][j] > dist[i][k] + dist[k][j] || !dist[i][j])
&& i != j
)
{
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
}
}
int main()
{
read();
rf();
show();
return 0;
}