Pagini recente » Cod sursa (job #1186602) | Cod sursa (job #1485747) | Cod sursa (job #777967) | Cod sursa (job #2501967) | Cod sursa (job #1161683)
#include <fstream>
using namespace std;
const int INF = 100000;
const int MAX = 111;
int N;
int G[MAX][MAX];
void citire() {
ifstream in("royfloyd.in");
in >> N;
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++) {
in >> G[i][j];
if(!G[i][j])
G[i][j] = INF;
}
in.close();
}
void solve() {
for(int k = 1; k <= N; k++)
for(int i = 1; i <= N; i++)
for(int j = 1; j <= N; j++) {
if(i == j) continue;
G[i][j] = min(G[i][j], G[i][k] + G[k][j]);
}
}
void afisare() {
ofstream out("royfloyd.out");
for(int i = 1; i <= N; i++) {
for(int j = 1; j <= N; j++)
out << (G[i][j] == INF ? 0 : G[i][j]) << " ";
out << "\n";
} out.close();
}
int main() {
citire();
solve();
afisare();
}