Pagini recente » Cod sursa (job #2552651) | Cod sursa (job #2140327) | Cod sursa (job #897210) | Cod sursa (job #1546638) | Cod sursa (job #2649127)
#include <iostream>
#include <fstream>
#define NMAX 100
#define inf 2000000000
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n, dp[NMAX+10][NMAX+10];
int main()
{
f >> n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
{ int x;
f >> x;
if(!x) dp[i][j] = inf;
else dp[i][j] = x;
}
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
if(i != k && dp[i][k] != inf)
for(int j=1; j<=n; j++)
if(j != k && j != i && dp[j][k] != inf)
dp[i][j] = min(dp[i][j], dp[i][k] + dp[k][j]);
for(int i=1; i<=n; i++)
{ for(int j=1; j<=n; j++)
{ if(dp[i][j] == inf) g << 0 << ' ';
else g << dp[i][j] << ' ';
}
g << '\n';
}
return 0;
}