Pagini recente » Monitorul de evaluare | Cod sursa (job #392346) | Monitorul de evaluare | Cod sursa (job #2021785) | Cod sursa (job #2007913)
#include <fstream>
#define INF 1000000
using namespace std;
int n,i,j,k,a[101][101],x;
ifstream fin ("royfloyd.in");
ofstream fout ("royfloyd.out");
int main (){
fin>>n;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
a[i][j] = INF;
for (i=1;i<=n;i++)
for (j=1;j<=n;j++){
fin>>x;
if (x != 0)
a[i][j] = x;
}
for (k=1;k<=n;k++)
for (i=1;i<=n;i++)
for (j=1;j<=n;j++)
if (i!=k && j!=k && i!= j && a[i][k]!=INF && a[k][j]!=INF)
a[i][j] = min (a[i][j],a[i][k]+a[k][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";
}
return 0;
}