Pagini recente » Cod sursa (job #755335) | Cod sursa (job #2188437) | Cod sursa (job #1344780) | Cod sursa (job #1352995) | Cod sursa (job #186253)
Cod sursa(job #186253)
#include <fstream.h>
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
double pinf=1.e20;
int n;
float a[110][110];
//void Drum(int , int);
int main()
{
int i=1, j=1, c;
fin>>n;
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
{
fin>>a[i][j];
if(a[i][j]==0 && i!=j)
a[i][j]=pinf;
}
/************************************************************************
fout<<"Matricea ponderilor: ";
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
if(a[i][j]<pinf)
fout<<a[i][j]<<" ";
else
fout<<"o ";
fout<<"\n ";
}
/************************************************************************/
int k;
for(k=1; k<=n; k++)
for(i=1; i<=n; i++)
for(j=1; j<=n; j++)
if(a[i][j]>a[i][k]+a[k][j])
a[i][j]=a[i][k]+a[k][j];
// fout<<"\nMatricea ponderilor: ";
for(i=1; i<=n; i++)
{
for(j=1; j<=n; j++)
if(a[i][j]<pinf)
fout<<a[i][j]<<" ";
else
fout<<"0 ";
fout<<"\n";
}
return 0;
}
/**************************************************************
fout<<"\nDrumul de la "<<inc<<" la "<<sf<<" are lungimea "<<a[inc][sf]<<"\n"<<inc<<" ";
Drum(inc, sf);
return 0;
}
void Drum(int i, int j)
{
int k=1, gasit=0;
while(k<=n && !gasit)
{
if(i!=k && j!=k && a[i][j]==a[i][k]+a[k][j])
{
Drum(i, k);
Drum(k, j);
gasit=1;
}
k++;
}
if(!gasit)
fout<<j<<" ";
} /*/