Pagini recente » Cod sursa (job #2409356) | Cod sursa (job #2694022) | Cod sursa (job #2521409) | Cod sursa (job #2679492) | Cod sursa (job #894139)
Cod sursa(job #894139)
#include <fstream>
#define infinit 999999999
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
long long n,m,nod_i,nod_f; float a[10000][10000];
/*void drum(long i, long j)
{
long long 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)
g<<j<<' ';
}
void scriu_drum(long long nod_i,long long nod_f)
{
if(a[nod_i][nod_f]<infinit)
{
g<<a[nod_i][nod_f]<<"\n";
g<<nod_i<<" ";
drum(nod_i,nod_f);
}
}
*/
void lungime_drum()
{
int i,j,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];
}
int main()
{
int i,j;
/*f>>n>>m>>nod_i>>nod_f;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i==j)
a[i][j]=0;
else
a[i][j]=infinit;
while(f>>i>>j)
a[i][j]=a[j][i]=1;
lungime_drum();
scriu_drum(nod_i,nod_f);*/
f>>n;
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
f>>a[i][j];
lungime_drum();
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
g<<a[i][j]<<' ';
g<<"\n";}
return 0;
}