Pagini recente » Cod sursa (job #780641) | Cod sursa (job #1299284) | Cod sursa (job #2661037) | Cod sursa (job #2145594) | Cod sursa (job #2889827)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("royfloyd.in");
ofstream fout("royfloyd.out");
int n;
int a[200][200];
void input()
{
int i, j;
fin >> n;
for(i = 0; i < n; i++)
for(j = 0; j < n; j++)
fin >> a[i][j];
}
bool check(int i, int j, int k)
{
if(i != j && a[i][k] && a[k][j] && (a[i][j] > a[i][k] + a[k][j] || !a[i][j]))
return true;
return false;
}
void RoyFloyd()
{
for(int k = 0; k < n; k++)
for(int i = 0; i < n; i++)
for(int j = 0; j < n; j++)
if(check(i, j, k))
a[i][j] = a[i][k] + a[k][j];
}
int main()
{
input();
RoyFloyd();
for(int i = 0; i < n; i++, fout << '\n')
for(int j = 0; j < n; j++)
fout << a[i][j] << " ";
fout << "\n";
}