Cod sursa(job #1586939)

Utilizator RadduFMI Dinu Radu Raddu Data 1 februarie 2016 19:03:05
Problema Floyd-Warshall/Roy-Floyd Scor 90
Compilator cpp Status done
Runda Arhiva educationala Marime 0.7 kb
#include <iostream>
#include <fstream>
#include <cstring>
#define inf 2147000000
using namespace std;
ifstream f("royfloyd.in");
ofstream g("royfloyd.out");
int n,dp[105][105];
int main()
{ int i,j,nod;
    f>>n;
    for(i=1;i<=n;i++)
     for(j=1;j<=n;j++)
      {f>>dp[i][j];
       if (!dp[i][j]) dp[i][j]=inf;
      }
    for(nod=1;nod<=n;nod++)
    {
       for(i=1;i<=n;i++)
        for(j=1;j<=n;j++)
         if (i!=j && dp[i][nod]!=0 && dp[nod][j]!=0)
          dp[i][j]=min(dp[i][j],dp[i][nod]+dp[nod][j]);
    }

    for(i=1;i<=n;i++)
    {
      for(j=1;j<=n;j++)
       {if (dp[i][j]==inf) dp[i][j]=0;

       g<<dp[i][j]<<" ";
       }
     g<<"\n";
    }
    return 0;
}