Cod sursa(job #764391)

Utilizator kakkarotFaur Catalin kakkarot Data 5 iulie 2012 04:25:34
Problema Floyd-Warshall/Roy-Floyd Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <fstream>
#include <cstring>

using namespace std;

int main(void)
{
    int n;
    int mat[100][100];
    
    ifstream cin("royfloyd.in");
    ofstream cout("royfloyd.out");
    
    cin >> n;
    int i,j;
    
    for(i=0;i<n;i++)
     for(j=0;j<n;j++)
        cin >> mat[i][j];
    
    
  
    
    int k;
    
    for(k=0;k<n;k++)
      for(i=0;i<n;i++)
        for(j=0;j<n;j++)
          if(mat[i][k]&&mat[k][j]&&
           (mat[i][k]+mat[k][j]<mat[i][j]||!mat[i][j]) && i != j)
          {
              mat[i][j]=mat[i][k]+mat[k][j];                 
          }    
          else
            mat[i][j] = mat[i][j];
            
    for(i=0;i<n;i++)
    {
       for(j=0;j<n;j++)
          cout << mat[i][j] << " ";
       cout << endl;                
    }
    
    cin.close();
    cout.close();
    return 0;   
}