Pagini recente » Cod sursa (job #2356342) | Cod sursa (job #407222) | Cod sursa (job #1848111) | Cod sursa (job #448236) | Cod sursa (job #613149)
Cod sursa(job #613149)
//includes
#include <iostream>
#include <stdio.h>
using namespace std;
//defines
#define sizeMax 100
//global variables
int size;
int matrix[sizeMax][sizeMax];
//functions
void warshall()
{
int k, i, j;
for(k = 0; k < size; ++k)
for(i = 0; i < size; ++i)
for(j = 0; j < size; ++j)
{
if(matrix[i][k] && matrix[k][j] && (matrix[i][j] > matrix[i][k]+matrix[k][j] || matrix[i][j]) && i!=j)
matrix[i][j] = matrix[i][k] + matrix[k][j];
}
}
int main()
{
int i, j;
//open files for read and write as stdin and stdout
freopen("floyd.in", "r", stdin);
freopen("floyd.out", "w", stdout);
//read in size of the matrix
scanf("%d", &size);
//read in elements of the matrix
for(i = 0; i < size; ++i)
for(j = 0; i < size; ++j)
scanf("%d", &matrix[i][j]);
//solve using the warshall algorithm
warshall();
for(i = 0; i < size; ++i)
{
for(j = 0; j < size; ++j)
printf("%d ", matrix[i][j]);
printf("\n");
}
return 0;
}