Pagini recente » Cod sursa (job #787794) | Cod sursa (job #1466799) | Cod sursa (job #2662724) | Cod sursa (job #711516) | Cod sursa (job #1095573)
#include<stdio.h>
#include<algorithm>
using namespace std;
FILE *in,*out;
//constante
const int Nmax=101;
const int oo=(1<<30)-1;
//variabile
int noduri;
int adiacenta[Nmax][Nmax];
int main(void)
{
in=fopen("royfloyd.in","rt");
out=fopen("royfloyd.out","wt");
fscanf(in,"%d",&noduri);
for(int i=1; i<=noduri; ++i)
for(int j=1; j<=noduri ; ++j)
{
fscanf(in,"%d",&adiacenta[i][j]);
if(i!=j && !adiacenta[i][j])
adiacenta[i][j]=oo;
}
for(int k=1; k<=noduri ;++k)
for(int i=1; i<=noduri; ++i)
{
if(i==k)
continue;
for(int j=1; j<=noduri; ++j)
adiacenta[i][j]=min(adiacenta[i][j],adiacenta[i][k]+adiacenta[k][j]);
}
for(int i=1; i<=noduri; ++i)
{
for(int j=1; j<=noduri; ++j)
if(adiacenta[i][j]!=oo)
fprintf(out,"%d ",adiacenta[i][j]);
fprintf(out,"\n");
}
fclose(in);
fclose(out);
return 0;
}