Pagini recente » Cod sursa (job #69916) | Cod sursa (job #2343315) | Cod sursa (job #1068807) | Cod sursa (job #215404) | Cod sursa (job #1338706)
#include<stdio.h>
FILE *in, *out;
//definitions
//constants
const int sz = 101;
const int oo = (1<<30)-1;
//variables
int nodes;
int mat[sz][sz];
//functions
int main(void)
{
in = fopen("royfloyd.in", "rt");
out = fopen("royfloyd.out", "wt");
fscanf(in, "%d", &nodes);
for(int i=1; i<=nodes; ++i)
for(int j=1; j<=nodes; ++j)
{
fscanf(in, "%d", &mat[i][j]);
if(!mat[i][j] && i!=j)
mat[i][j] = oo;
}
for(int k=1; k<=nodes; ++k)
for(int i=1; i<=nodes; ++i)
{
if( k==i)
continue;
for(int j=1; j<=nodes; ++j)
{
if(k==j)
continue;
if( mat[i][j] > mat[i][k] + mat[k][j])
mat[i][j] = mat[i][k] + mat[k][j];
}
}
for(int i=1; i<=nodes; ++i)
{
for(int j=1; j<=nodes; ++j)
if(mat[i][j] == oo)
fprintf(out,"0 ");
else
fprintf(out, "%d ", mat[i][j]);
fprintf(out,"\n");
}
fclose(in);
fclose(out);
return 0;
}