Pagini recente » Cei mai harnici utilizatori infoarena | Clasament arhiva | Clasamentul arhivei de probleme | Cod sursa (job #254194) | Cod sursa (job #2509903)
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
#define us unsigned short
us N, adj[105][105];
void Read()
{
fin >> N;
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
fin >> adj[i][j];
}
void Write()
{
for(int i = 0; i < N; i++) {
for(int j = 0; j < N; j++)
fout << adj[i][j] << " ";
fout << "\n";
}
}
void RoyFloyd()
{
for(int k = 0; k < N; k++)
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(adj[i][k] && adj[k][j] && (adj[i][j] > adj[i][k] + adj[k][j] || !adj[i][j]) && i != j)
adj[i][j] = adj[i][k] + adj[k][j];
}
int main()
{
Read();
RoyFloyd();
Write();
}