Pagini recente » Cod sursa (job #2254) | Cod sursa (job #2176742) | Cod sursa (job #1935619) | Cod sursa (job #340779) | Cod sursa (job #2549542)
#define NMAX 105
#define INF 0x3f3f3f3f
#include <fstream>
#include <vector>
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n, m;
int c[NMAX][NMAX], p[NMAX][NMAX];
void init(){
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(i!=j)
c[i][j] = INF;
}
}
}
void citire(){
f>>n;
init();
int x, y, cost;
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++)
f>>c[i][j];
}
void parc(int k){
for(int i=1; i<=n; i++)
for(int j=1; j<=n; j++){
if((c[i][j] > c[i][k] + c[k][j] || !c[i][j]) && c[i][k]!=0 && c[k][j]!=0 && i!=j){
c[i][j] = c[i][k] + c[k][j];
p[i][j] = p[k][j];
}
}
}
void roy_floyd(){
for(int k=1; k<=n; k++)
parc(k);
}
int main()
{
citire();
roy_floyd();
for(int i=1; i<=n; i++){
for(int j=1; j<=n; j++){
if(c[i][j] == INF)
c[i][j] = 0;
g<<c[i][j]<<" ";
}
g<<'\n';
}
return 0;
}