Pagini recente » Cod sursa (job #901258) | Cod sursa (job #2860537) | Cod sursa (job #2343008) | Cod sursa (job #2140600) | Cod sursa (job #1128441)
#ifdef __INFOARENA_PROJ
#include "infoarena.h"
#endif
#include <fstream>
#include <algorithm>
#ifdef __INFOARENA_PROJ
namespace royfloyd {
#endif
unsigned const int maxN = 1000;
unsigned const short INF = (unsigned short)-1;
int main()
{
std::ifstream in("royfloyd.in");
std::ofstream out("royfloyd.out");
int N;
in >> N;
unsigned short D[maxN + 1][maxN + 1];
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
in >> D[i][j];
if (D[i][j] == 0)
D[i][j] = INF;
}
}
for (int k = 1; k <= N; ++k)
for (int i = 1; i <= N; ++i)
for (int j = 1; j <= N; ++j)
if (i != j && D[i][k] + D[k][j] < D[i][j])
D[i][j] = D[i][k] + D[k][j];
for (int i = 1; i <= N; ++i)
{
for (int j = 1; j <= N; ++j)
{
if (D[i][j] == INF)
D[i][j] = 0;
out << D[i][j] << ' ';
}
out << '\n';
}
return 0;
}
#ifdef __INFOARENA_PROJ
}
#endif
int D[100][100];
void roy() //cel mai scurt drum intre oricare 2 noduri
{
}