Pagini recente » Cod sursa (job #3188327) | Cod sursa (job #490142) | Cod sursa (job #2157644) | Cod sursa (job #2724236) | Cod sursa (job #1849674)
#include <fstream>
#include <vector>
#include <algorithm>
#define Nmax 103
#define INF (1<<30)
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,d[Nmax][Nmax],cost[Nmax][Nmax],parent[Nmax][Nmax];
vector <int> G[Nmax];
void RoyFloyd()
{
for (int k=1; k<=n; ++k)
for (int i=1; i<=n; ++i)
for (int j=1; j<=n; ++j)
if (d[i][k]!=0 && d[k][j]!=0 && cost[i][k]+cost[k][j]<cost[i][j])
{
cost[i][j]=cost[i][k]+cost[k][j];
//parent[i][j]=parent[i][k]
}
}
int main()
{
f>>n;
for (int i=1; i<=n; ++i)
for (int j=1; j<=n; ++j) cost[i][j]=INF;
for (int i=1; i<=n; ++i)
for (int j=1; j<=n; ++j)
{
f>>d[i][j];
cost[i][j]=d[i][j];
// if (d[i][j]) G[i].push_back(j);
}
RoyFloyd();
for (int i=1; i<=n; ++i)
{
for (int j=1; j<=n; ++j) g<<cost[i][j]<<' ';
g<<'\n';
}
f.close();
g.close();
return 0;
}