Cod sursa(job #1888866)

Utilizator Mihaibv13Mihai Stoian Mihaibv13 Data 22 februarie 2017 13:10:36
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <iostream>
#include <cstdio>
using namespace std;
int v[100][100],n;
 FILE *g=fopen("royfloyd.out","w");
void afisare()
{
    for( int  i=1; i<=n; i++)
    {
        for(int j=1; j<=n; j++)
            fprintf(g,"%d ",v[i][j]);

           fprintf(g,"\n");
    }

}
int main()
{
    int i,j;

    FILE *f=fopen("royfloyd.in","r");

    fscanf(f,"%d",&n);
    for( i=1; i<=n; i++)
     for(j=1; j<=n; j++)
            fscanf(f,"%d",&v[i][j]);

            int k;
    for(k=1;k<=n;k++)
       for(i=1;i<=n;i++)
         for(j=1;j<=n;j++)
         {  if(i!=j && i!=k && j!=k)
           {  if(v[i][k] && v[k][j] && (v[i][j]==0 || v[i][j]>v[i][k]+v[k][j]))
                  v[i][j]=v[i][k]+v[k][j];

           }



         }


        afisare();

    return 0;
}