Cod sursa(job #382224)

Utilizator iulliaiulia pop iullia Data 13 ianuarie 2010 09:49:35
Problema Floyd-Warshall/Roy-Floyd Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.64 kb
#include<iostream>
#include<fstream>
using namespace std;
int a[100][100],i,j,n,k;

void citire()
{ ifstream f("royfloyd.in");
   f>>n;
   for(i=1;i<=n;i++)
   for(j=1;j<=n;j++)
     f>>a[i][j];
     f.close();
}
     
void warshall()
{ for(k=1;k<=n;k++)
  for(i=1;i<=n;i++)
  for(j=1;j<=n;j++)
    if(a[i][k]&&a[k][j]&&a[i][j]>a[i][k]+a[k][j]||!a[i][j]&&i!=j)
      a[i][j]=a[i][k]+a[k][j];
}

void afisare()
{ ofstream g("royfloyd.out");
    
    for(i=1;i<=n;i++)
    {for(j=1;j<=n;j++)
      g<<a[i][j]<<" ";
      g<<"\n";
}
g.close();
}

int main()
{ citire();
  warshall();
  afisare();
  

return 0;
}