Pagini recente » Cod sursa (job #20193) | Cod sursa (job #1151870) | Cod sursa (job #1156489) | Cod sursa (job #1405852) | Cod sursa (job #670914)
Cod sursa(job #670914)
#include <iostream>
#include <fstream>
using namespace std;
const char iname[] = "royfloyd.in";
const char oname[] = "royfloyd.out";
ifstream fin(iname);
ofstream fout(oname);
int n, i, a[1002][1002], j, k, rf[1002][1002];
void royfloyd()
{
for(i = 1; i <= n; i ++)
{
rf[i][i] = 0;
for(j = 1; j <= n; j ++)
rf[i][j] = a[i][j];
}
for(k = 1; k <= n; k ++)
for(i = 1; i <= n; i ++)
for(j = 1; j <= n; j ++)
{
if(rf[i][k] && rf[k][j] && rf[i][k] + rf[k][j] < rf[i][j])
rf[i][j] = rf[i][k] + rf[k][j];
}
for(i = 1; i <= n; i ++)
{
for(j = 1; j <= n; j ++)
fout << rf[i][j] << " ";
fout << "\n";
}
}
int main()
{
fin >> n;
for(i = 1; i <= n; i ++)
{
for(j = 1; j <= n; j ++)
fin >> a[i][j];
}
royfloyd();
return 0;
}