Cod sursa(job #620943)

Utilizator noname15119Noname noname15119 Data 16 octombrie 2011 17:19:31
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.61 kb
#include<fstream>
using namespace std;

int main(int nrargv,char* argv[])
{
 ifstream f;
 ofstream g;
 f.open("royfloyd.in",ios::in);
 g.open("royfloyd.out",ios::out);
 int n;
 f>>n;
 int m[100][100];
 
 for(int i=0; i<n;i++)
   for(int j=0; j<n; j++)
      f>>m[i][j];

 for(int k=0;k<n;k++)
  for(int i=0;i<n;i++)
   for(int j=0;j<n;j++)
    if (m[i][k] && m[k][j] && i!=j) 
       {
         if (m[i][j]==0) m[i][j]=m[i][k]+m[k][j]; 
            else m[i][j]= min(m[i][j],m[i][k]+m[k][j]);
        }
 
 for(int i=0;i<n;i++)
 {
   for(int j=0;j<n;j++)
      g<<m[i][j]<<" ";
   g<<"\n";
 }
 f.close();
 g.close();
 return 0;
}