Pagini recente » Cod sursa (job #40994) | Cod sursa (job #853987) | Cod sursa (job #1835745) | Cod sursa (job #1454736) | Cod sursa (job #606576)
Cod sursa(job #606576)
#include<fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
const int maxx=100000;
int a[101][101],k,n,m,p[101];
void citire()
{
int i,j,x;
fin>>n>>m;
for(i=1;i<=n;i++)
for(j=i+1;j<=n;j++)
a[i][j]=a[j][i]=maxx;
for(x=1;x<=m;x++)
{ fin>>i>>j;
a[i][j]=1;
a[j][i]=1;
}
}
void rf()
{
int i,j,k;
for(k=1;k<=n;k++)
for(i=1;i<=n;i++)
for(j=1;j<=n;j++)
if(i!=j)
if(a[i][j]>a[i][k]+a[k][j]) a[i][j]=a[i][k]+a[k][j]; //daca dist (i , k) +dist (k,j) < dist (i, j)
}
void afis()
{
int i,j;
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
if(a[i][j]!=maxx) fout<<a[i][j]<<" ";
else fout<<0<<" ";
fout<<"\n";
}
}
int main()
{
citire();
rf();
afis();
fin.close();
fout.close();
return 0;
}