Cod sursa(job #2059101)

Utilizator RazvanGutaGuta Razvan Alexandru RazvanGuta Data 6 noiembrie 2017 17:30:38
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.72 kb
 # include <fstream>
# include <vector>
 using namespace std;
 ifstream f("royfloyd.in");
 ofstream g("royfloyd.out");

 const int NMax = 103, oo = 2e7;
int N, A[NMax][NMax];

 void Citire ()
 {
 f >> N;
 for (int i = 1; i <= N; ++i)
 for (int j = 1; j <= N; ++j){
 f >> A[i][j];
 if (i != j && A[i][j] == 0)
 A[i][j] = oo;
 }
 }

 void Afisare ()
 {
 for (int i = 1; i <= N; ++i){
 for (int j = 1; j <= N; ++j)
 g << (A[i][j] != oo) * A[i][j] << " ";
 g << '\n';
 }
 }

 void RoyFloyd ()
 {
 for (int k = 1; k <= N; ++k)
 for (int i = 1; i <= N; ++i)
 for (int j = 1; j <= N; ++j)
 A[i][j] = min(A[i][j], A[i][k] + A[k][j]);
 }

 int main()
 {
 Citire();
 RoyFloyd();
 Afisare();
 return 0;
 }