Pagini recente » Istoria paginii runda/pt_round13 | Cod sursa (job #2038013) | Cod sursa (job #1765164) | Cod sursa (job #1021002) | Cod sursa (job #2298394)
#include <fstream>
#define DIM 105
#define INF 1000000000
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int A[DIM][DIM], tata[DIM][DIM], n;
void init()
{
int i, j;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
A[i][j]=INF, tata[i][j]=i;
}
void citire()
{
int i, j;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
fin>>A[i][j];
}
void afisare()
{
int i, j;
for(i=1;i<=n;++i)
{
for(j=1;j<=n;++j)
if(A[i][j]==INF) fout<<0<<' ';
else fout<<A[i][j]<<' ';
fout<<'\n';
}
}
int main()
{
fin>>n;
init();
citire();
for(int x=1;x<=n;++x)
for(int u=1;u<=n;++u)
for(int v=1;v<=n;++v)
if(u!=v && A[u][v]>A[u][x]+A[x][v])
{
A[u][v]=A[u][x]+A[x][v];
tata[u][v]=tata[x][v];
}
afisare();
return 0;
}