Pagini recente » Cod sursa (job #1182262) | Cod sursa (job #911354) | Cod sursa (job #99906) | Cod sursa (job #2806482) | Cod sursa (job #2198014)
#include <iostream>
#include <fstream>
#include <climits>
#define dimn 100
std::ifstream f("royfloyd.in");
std::ofstream g("royfloyd.out");
int N;
int cost[dimn][dimn];
void royfloyd() {
for (int i=0, j, k; i<N; i++)
for (j=0; j<N; j++)
for (k=0; k<N; k++)
if(cost[i][k] && cost[k][j] && (cost[i][j] > cost[i][k] + cost[k][j] || !cost[i][j]) && i!=j)
cost[i][j] = cost[i][k] + cost[k][j];
}
void citire() {
f >> N;
for (int i=0, j; i<N; i++)
for (j=0; j<N; j++)
f >> cost[i][j];
}
void rezolvare() {
royfloyd();
for (int i=0, j; i<N; i++) {
for (j=0; j<N; j++)
g << cost[i][j] << " " ;
g << "\n";
}
}
int main()
{
citire();
rezolvare();
return 0;
}