Pagini recente » Cod sursa (job #2178620) | Cod sursa (job #2461222) | Cod sursa (job #1470700) | Cod sursa (job #905937) | Cod sursa (job #970410)
Cod sursa(job #970410)
#include<fstream>
#include<vector>
using namespace std;
const int MAXN=102;
int n;
int w[MAXN][MAXN],s[MAXN][MAXN]; //w-weight of edge, s-shortest path between node i&j
void citire()
{
ifstream fin("royfloyd.in");
fin>>n;
for (int i=1;i<=n;++i)
for (int j=1;j<=n;++j)
fin>>w[i][j];
fin.close();
}
void rezolvare()
{
int k,i,j;
for (k=1;k<=n;++k)
{
for (i=1;i<=n;++i)
{
for (j=1;j<=n;++j)
{
if (w[i][k] && w[k][j] && (w[i][k]+w[k][j]<w[i][j] || !w[i][j]) && i!=j)
w[i][j]=w[i][k]+w[k][j];
}
}
}
}
void afisare()
{
ofstream fout("royfloyd.out");
for (int i=1;i<=n;++i)
{
for (int j=1;j<=n;++j)
fout<<w[i][j]<<' ';
fout<<'\n';
}
fout.close();
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}