Pagini recente » Monitorul de evaluare | Borderou de evaluare (job #2982057) | Borderou de evaluare (job #583729) | Profil cipri321 | Cod sursa (job #793111)
Cod sursa(job #793111)
#include <fstream>
using namespace std;
int n, a[105][105];
inline void Read()
{
ifstream f("royfloyd.in");
f>>n;
int i, j;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
f>>a[i][j];
f.close();
}
inline void RoyFloyd()
{
int i, j, k;
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if (a[i][j] == 0)
a[i][j] = 2000000000;
for (k=1; k<=n; k++)
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
if (a[i][k] && a[k][j] && (a[i][k] + a[k][j] < a[i][j]) && i!=j && j!=k && i!=k)
a[i][j] = a[i][k] + a[k][j];
}
inline void Write()
{
ofstream g("royfloyd.out");
int i, j;
for (i=1; i<=n; i++)
{
for (j=1; j<=n; j++)
if (a[i][j] == 2000000000)
g<<0<<" ";
else
g<<a[i][j]<<" ";
g<<"\n";
}
g.close();
}
int main()
{
Read();
RoyFloyd();
Write();
return 0;
}