Pagini recente » Istoria paginii runda/oli.2009.simulare | Cod sursa (job #1111756) | Cod sursa (job #1880711) | Cod sursa (job #1122824) | Cod sursa (job #1498407)
#include <stdio.h>
#include <stdlib.h>
int **graph;
int main(){
freopen("royfloyd.in", "r", stdin);
freopen("royfloyd.out","w",stdout);
int N;
scanf("%d", &N);
graph = (int**)malloc(N*sizeof(int*));
for (int i = 0; i < N; i++)
{
graph[i] = (int*)malloc(N*sizeof(int));
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
scanf("%d", &graph[i][j]);
}
}
for (int k = 0; k < N; k++)
{
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
if ((graph[i][j] > graph[i][k] + graph[k][j] || graph[i][j] == 0) && graph[i][k]!=0 && graph[k][j]!=0 && i!=j)
{
graph[i][j] = graph[i][k] + graph[k][j];
}
}
}
}
for (int i = 0; i < N; i++)
{
for (int j = 0; j < N; j++)
{
printf("%d ", graph[i][j]);
}
printf("\n");
}
return 0;
}