Pagini recente » Cod sursa (job #78885) | Mihnea Andreescu | Profil margiki | Cod sursa (job #2270744) | Cod sursa (job #777330)
Cod sursa(job #777330)
#include <fstream>
#include <math.h>
#include <limits.h>
using namespace std;
int n, M[103][103],D[103][103], i, j, k;
void SP( int i, int j , int k )
{
for(k=0;k<n;++k)
for(i=0;i<n;++i)
for(j=0;j<n;++j)
if(i!=j)
D[i][j] = min( D[i][j], D[i][k]+D[k][j] );
}
int main()
{
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
fin>>n;
for(i=0;i<n;++i)
for(j=0;j<n;++j)
{
fin>>M[i][j];
if(M[i][j]==0)
D[i][j]=1000000002;
else
D[i][j]=M[i][j];
}
SP(0,0,0);
for(i=0;i<n;++i)
{
for(j=0;j<n;++j)
{
if(D[i][j]==1000000002)
fout<<"0"<<" ";
else
fout<<D[i][j]<<" ";
}
fout<<"\n";
}
return 0;
}