Pagini recente » Cod sursa (job #1341521) | Cod sursa (job #2974982) | Cod sursa (job #288952) | Cod sursa (job #3182751) | Cod sursa (job #615299)
Cod sursa(job #615299)
#include <fstream>
#include <string.h>
#define INF 0x3f3f3f
#define max_n 101
using namespace std;
int d[max_n][max_n];
int i,j,k,n;
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int main () {
in >> n;
memset(d,0,sizeof(d));
for (i=1; i<=n; i++)
for (j=1; j<=n; j++)
in >> d[i][j];
if (!d[i][j]) d[i][j]=INF;
for (k=1; k<=n; k++)
for (i=1; i<=n; i++)
for (j=1; j<=n; j++) {
if (d[i][k]==INF || d[k][j]==INF || i==j)
continue;
if (d[i][j]>d[i][k]+d[k][j])
d[i][j]=d[i][k]+d[k][j];
}
for (i=1; i<=n; i++) {
for (j=1; j<=n; j++) {
if (d[i][j]==INF) d[i][j]=0;
out << d[i][j] << ' ';
}
out << '\n';
}
return 0;
}