Pagini recente » Cod sursa (job #1055752) | Cod sursa (job #2938489) | Cod sursa (job #392983) | Cod sursa (job #3138114) | Cod sursa (job #716051)
Cod sursa(job #716051)
#include <iostream>
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector< vector<int> > matAdi;
int main (int argc, char const *argv[])
{
ifstream in ("royfloyd.in");
in >> n;
matAdi.resize(n, vector<int>(n));
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
in >> matAdi[i][j];
}
in.close();
/*
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
cout << matAdi[i][j] << ' ';
cout << '\n';
}
*/
for (int k = 0; k < n; k++)
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
if ( i != j && matAdi[i][k] && matAdi[k][j] &&
(matAdi[i][j] > matAdi[i][k] + matAdi[k][j] || !matAdi[i][j]) )
matAdi[i][j] = matAdi[i][k] + matAdi[k][j];
ofstream out ("royfloyd.out");
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
out << matAdi[i][j] << ' ';
out << '\n';
}
out.close();
return 0;
}