Pagini recente » Cod sursa (job #3287975) | Cod sursa (job #26730) | Cod sursa (job #2855271) | Cod sursa (job #306794) | Cod sursa (job #664682)
Cod sursa(job #664682)
#include<fstream>
#include<iostream>
using namespace std;
#define filein "royfloyd.in"
#define fileout "royfloyd.out"
#define NMAX 100
#define MIN(a,b) ((a>b) ? b : a)
#define MMAX(a,b) ((a<b) ? b : a)
int M[NMAX][NMAX], N;
int main(void)
{
ifstream fin(filein);
fin>>N;
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
fin>>M[i][j];
fin.close();
for(int k = 0; k < N; k++)
for(int i = 0; i < N; i++)
for(int j = 0; j < N; j++)
if(i != j && M[i][k] && M[k][j]){
if(M[i][j])
M[i][j] = MIN(M[i][j], M[i][k] + M[k][j]);
else
M[i][j] = M[i][k] + M[k][j];
}
ofstream out(fileout);
for(int i = 0; i < N; i++){
for(int j = 0; j < N; j++)
out<<M[i][j]<<" ";
out<<endl;
}
out.close();
return 0;
}