Pagini recente » Cod sursa (job #2502306) | Cod sursa (job #1552239) | preONI 2008 - Clasament Runda 2, Clasa a 10-a | Cod sursa (job #823143) | Cod sursa (job #264722)
Cod sursa(job #264722)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int v[101][101];
int n;
void citire();
void afisare();
void rezolva();
int main()
{
citire();
rezolva();
afisare();
return 0;
}
void rezolva()
{
int i;
int j;
int k;
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
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][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);
}