Pagini recente » Cod sursa (job #2009880) | Cod sursa (job #752889) | Cod sursa (job #21) | Statistici Alexandru Dan (xR_86) | Cod sursa (job #264718)
Cod sursa(job #264718)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int v[101][101];
int n;
void citire();
void afisare();
void rezolva();
int main()
{
memset(v,0x7f,100*100*sizeof(int));
citire();
rezolva();
afisare();
return 0;
}
void rezolva()
{
int i;
int j;
int k;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
for(k=1; k<=n; k++)
if(i!=j && j!=k && i!=k)
if( (v[i][k]) && (v[k][j]) && (v[i][j]>v[i][k]+v[k][j]) )
v[i][j]=v[i][k]+v[k][j];
}
void afisare()
{
int i;
int j;
FILE *g=fopen("royfloyd.out","w");
for(i=1; i<=n; i++)
{
if(i!=1)
fprintf(g,"\n");
for(j=1; j<=n; j++)
fprintf(g,"%d ",v[i][j]);
}
fclose(g);
}
void citire()
{
int i;
int j;
FILE *f=fopen("royfloyd.in","r");
fscanf(f,"%d",&n);
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
fscanf(f,"%d",&v[i][j]);
fclose(f);
}