Pagini recente » Cod sursa (job #2023556) | Cod sursa (job #1781943) | Cod sursa (job #2103044) | Cod sursa (job #2109932) | Cod sursa (job #1473864)
#include <iostream>
#include <cstring>
#include <fstream>
#define N 103
using namespace std;
int dist[N][N],n;
void citire()
{
int i,j;
ifstream f("royfloyd.in");
f>>n;
for(i=0;i<n;i++)
for(j=0;j<n;j++)
f>>dist[i][j];
f.close();
}
void Floyd_Warshall()
{
int i,j,k;
//memset(dist,0,sizeof(int)*(n)*(n));
for(k=0;k<n;k++)
for(i=0;i<n;i++)
for(j=0;j<n;j++)
{
if((dist[i][k] * dist[k][j] != 0) && (i!=j))
{
if((dist[i][k] + dist[k][j] < dist[i][j]) || (dist[i][j] == 0))
{
dist[i][j] = dist[i][k] + dist[k][j];
}
}
}
}
void afisare()
{
int i,j;
ofstream g("royfloyd.out");
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
g<<dist[i][j]<<" ";
}
g<<"\n";
}
g.close();
}
int main()
{
citire();
Floyd_Warshall();
afisare();
}