Pagini recente » Cod sursa (job #2369069) | Cod sursa (job #1333260) | Cod sursa (job #1038895) | Cod sursa (job #1222399) | Cod sursa (job #3325425)
#include <bits/stdc++.h>
using namespace std;
#define INF 100000000
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n;
vector<vector<int>> dist;
void RoyFloyd(vector<vector<int>>& d) {
for (int k = 0; k < n; ++k)
for (int i = 0; i < n; ++i)
for (int j = 0; j < n; ++j)
if (d[i][k] < INF && d[k][j] < INF)
d[i][j] = min(d[i][j], d[i][k] + d[k][j]);
}
int main() {
f >> n;
dist.resize(n, vector<int>(n));
for (int i = 0; i < n; ++i) {
for (int j = 0; j < n; ++j) {
f >> dist[i][j];
if (i != j && dist[i][j] == 0)
dist[i][j] = INF;
}
}
RoyFloyd(dist);
for (int i = 0; i < n; ++i)
{for (int j = 0; j < n; ++j)
{if(dist[i][j]==INF)
g << 0 << " ";
else
g<<dist[i][j]<<" ";}
g << "\n";}
return 0;
}