Pagini recente » Cod sursa (job #2142245) | Monitorul de evaluare | Cod sursa (job #1439434) | Cod sursa (job #1691108) | Cod sursa (job #1604509)
#include <iostream>
#include <vector>
#include <fstream>
using namespace std;
#define MAXN 110
#define INF 100001
int main()
{
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n;
f >> n;
int dist[MAXN][MAXN];
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
f >> dist[i][j];
if(dist[i][j] == 0){
dist[i][j] = INF;
}
}
}
for(int mij = 0; mij < n; ++mij){
for(int a = 0; a < n; ++a){
if(a == mij){
continue;
}
for(int b = 0; b < n; ++b){
if(b == mij || b == a){
continue;
}
dist[a][b] = min(dist[a][b], dist[a][mij] + dist[mij][b]);
}
}
}
for(int i = 0; i < n; ++i){
for(int j = 0; j < n; ++j){
g << (dist[i][j] >= INF ? 0 : dist[i][j]) << ' ';
}
g << '\n';
}
return 0;
}