Pagini recente » Cod sursa (job #2753105) | Cod sursa (job #2427444) | Cod sursa (job #1243605) | Cod sursa (job #1818534) | Cod sursa (job #1103870)
#include <iostream>
#include <fstream>
using namespace std;
int main() {
ifstream in("royfloyd.in");
ofstream out("royfloyd.out");
int n, i, j, k, **g;
in>>n;
g = new int*[n];
for (i = 0 ; i < n ; i ++) {
g[i] = new int[n];
for (j = 0 ; j < n ; j ++) {
in>>g[i][j];
}
}
for (k = 0 ; k < n ; k ++)
for (i = 0 ; i < n ; i ++)
for (j = 0 ; j < n ; j ++)
if (g[i][k] != 0 && g[k][j] != 0) {
if (g[i][j] != 0) {
if (g[i][j] > g[i][k] + g[k][j])
g[i][j] = g[i][k] + g[k][j];
}
else if (i != j) g[i][j] = g[i][k] + g[k][j];
}
for (i = 0 ; i < n ; i ++) {
for (j = 0 ; j < n ; j ++)
out<<g[i][j]<<" ";
out<<"\n";
}
in.close();
out.close();
return 0;
}