Cod sursa(job #645684)

Utilizator zloteanu.adrianzloteanu adrian nichita zloteanu.adrian Data 10 decembrie 2011 12:23:18
Problema Floyd-Warshall/Roy-Floyd Scor 50
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include<fstream>
using namespace std;
int a[110][110],n;
int main()
{
    ifstream q("royfloyd.in");
    ofstream w("royfloyd.out");
    q>>n;
    for(int i=1; i<=n; i++)
        for(int j=1; j<=n; j++)
        {
            q>>a[i][j];
            if(a[i][j]==0)
                a[i][j]=-1;
        }
    for (int k = 1; k <= n; k++)
        for (int i = 1; i <= n; i++)
            for (int j = 1; j <= n; j++)
                if (a[i][j] > a[i][k] + a[k][j]&&a[i][k]!=-1&&a[k][j]!=-1&&i!=j)
                 a[i][j]=a[i][k]+a[k][j];
    for(int i=1;i<=n;i++){
      for(int j=1;j<=n;j++)
         {
             if(a[i][j]==-1)
              a[i][j]=0;
             w<<a[i][j]<<" ";
         }
    w<<"\n";
    }
    return 0;}