Pagini recente » Cod sursa (job #134185) | Cod sursa (job #2263922) | Cod sursa (job #921739) | Cod sursa (job #2546922) | Cod sursa (job #2706126)
#include <fstream>
using namespace std;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
const int INF = 2e9, lim = 100;
int dist[lim+5][lim+5], n;
void RoyFloyd()
{
for(int k=1; k<=n; k++)
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
if(dist[i][k] != 0 && dist[k][j]!=0 && i!=j) //cazurile in care nu exista muchii
if(dist[i][k] + dist[k][j] < dist[i][j] || dist[i][j]==0)
dist[i][j] = dist[i][k] + dist[k][j];
}
int main()
{
in>>n;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
in>>dist[i][j];
RoyFloyd();
for(int i=1; i<=n; i++)
{
for(int j=1; j<=n; j++)
out<<dist[i][j]<<' ';
out<<'\n';
}
return 0;
}