Pagini recente » Cod sursa (job #2212100) | Istoria paginii runda/g6c2h7e4f5c2h7b1c2 | Cod sursa (job #343878) | Cod sursa (job #709375) | Cod sursa (job #1912780)
#include <fstream>
#include <climits>
#define inf INT_MAX
#define N 105
using namespace std;
int cost[N][N], n;
void roy()
{
for(int k=1; k<=n; k++) // Roy -Floyd
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(i!=j && cost[i][k] && cost[k][j] && (cost[i][j] || cost[i][j] > cost[i][k] + cost[k][j]))
cost[i][j] = cost[i][k] + cost[k][j];
}
int main()
{
ifstream fin("royfloyd.in");
fin >> n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
fin >> cost[i][j];
fin.close();
if(n) roy();
ofstream fout("royfloyd.out");
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
fout << cost[i][j] << " ";
fout << '\n';
}
fout.close();
return 0;
}