Cod sursa(job #737541)

Utilizator TudorDDodoiu Tudor TudorD Data 19 aprilie 2012 17:01:39
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.71 kb
#include <fstream>
using namespace std;
long M[101][101];
long minim(long a,long b)
{
return (a < b) ? a : b;
}
int main(void)
{
fstream fin("royfloyd.in",ios::in);
fstream fout("royfloyd.out",ios::out);
long N,k,i,j;
fin >> N;
for (i = 0;i < N;i += 1)
{
for (j = 0;j < N;j += 1)
{
fin >> M[i][j];
if (M[i][j] == 0)
{
M[i][j] = 3000;
}
}
M[i][i] = 0;
}
for (k = 0;k < N;k += 1)
{
for (i = 0;i < N;i += 1)
{
for (j = 0;j < N;j += 1)
{
M[i][j] = minim(M[i][j],M[i][k] + M[k][j]);
}
}
}
for (i = 0;i < N;i += 1)
{
for (j = 0;j < N;j += 1)
{
if (M[i][j] > 1500)
{
fout << "0" << " ";
}
else
{
fout << M[i][j] << " ";
}
}
fout << "\n";
}
fin.close();
fout.close();
return 0;
}