Pagini recente » Cod sursa (job #419987) | Cod sursa (job #2310130) | Cod sursa (job #1554550) | Cod sursa (job #2887964) | Cod sursa (job #745098)
Cod sursa(job #745098)
//Include
#include <fstream>
#include <algorithm>
using namespace std;
//Constante
const int MAX_SIZE = 101;
const int oo = (1<<30) - 1;
//Variabile
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int nodes;
int adiacence[MAX_SIZE][MAX_SIZE];
//Main
int main()
{
in >> nodes;
for(int i=1 ; i<=nodes ; ++i)
for(int j=1 ; j<=nodes ; ++j)
{
in >> adiacence[i][j];
if(i!=j && !adiacence[i][j])
adiacence[i][j] = oo;
}
for(int k=1 ; k<=nodes ; ++k)
for(int i=1 ; i<=nodes ; ++i)
{
if(i==k)
continue;
for(int j=1 ; j<=nodes ; ++j)
adiacence[i][j] = min(adiacence[i][j], adiacence[i][k] + adiacence[k][j]);
}
for(int i=1 ; i<=nodes ; ++i, out << '\n')
for(int j=1 ; j<=nodes ; ++j)
out << (adiacence[i][j] == oo? 0 : adiacence[i][j]) << ' ';
in.close();
out.close();
return 0;
}