Pagini recente » Cod sursa (job #2557858) | Borderou de evaluare (job #553302) | Cod sursa (job #790346) | Cod sursa (job #2692701) | Cod sursa (job #905547)
Cod sursa(job #905547)
#include <fstream>
#include <vector>
const int Maxn = 105;
const int inf = 1e9;
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
using std::vector;
int N;
int a[Maxn][Maxn];
int dist[Maxn][Maxn];
int main()
{
in >> N;
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
in >> a[i][j];
for (int k = 0; k < N; ++k)
for (int i = 0; i < N; ++i)
for (int j = 0; j < N; ++j)
if ( (a[i][k] + a[k][j] < a[i][j] || !a[i][j]) && a[i][k] && a[k][j] && a[i][j] && i != j)
a[i][j] = a[i][k] + a[k][j];
for (int i = 0; i < N; ++i) {
if (i) out << '\n';
for (int j = 0; j < N; ++j)
out << a[i][j] << " ";
}
in.close();
out.close();
return 0;
}